Been taking a look at AB after being gone for a few years.
Looks like there is still no simple AFL method to retrieve the current equity
to compute a positionsize for the next trade.
I tried Equity(), Equity(1), Equity(0), and all the other variants that I could
think of.
Even tried Foreign("~~~EQUITY", "C"); No joy.
I believe that Herman van den Bergen ran across this some time ago.
I haven't found what his solution was, if he found one.
Herman, you out there?
Any ideas?
Thanks,
-CS
What I am trying is really a very simple test formula like:
OptimizerSetEngine("cmae");
//============== Optimize ========================
StopPct = Optimize("StopPct", 15, 1, 15, 1);
//StopPoints = Optimize("StopPoints", 100 , 5, 100, 5);
T1=Optimize("T1", 3 ,3,25,1); //MACD Short period
T2=Optimize("T2", 28 ,26,30,1); //MACD Long period
WT=Optimize("WT", 18 ,10,22,1); //Wilders periods
LTH=27;//Optimize("LTH",25,10,30,2); //Lower threshold line
UTH=73;//Optimize("UTH",73,60,80,2); //Upper threshold line
THT=Optimize("THT", 8 ,8,21,1); // Dynamic Band periods
UBC=Optimize("UBC", 1.6 ,0,3,0.1); // UBand change
LBC=Optimize("LBC", 1.3 ,0,3,0.1); // LBand change
PctEq= 5;//Optimize("Percent of Equity", 5 ,1,15,1);
//================ Buy & Sell & Short & Cover Formula ============
M1=MACD(T1,T2);//MA(MACD(T1,T2),MAT);
A1=RSIa(M1,WT);
//Dynamic Bands
UB=HHV(A1,THT)-(UBC);
LB=LLV(A1,THT)+(LBC);
Buy=Cross(A1,LB);// AND A1<=LTH;
Sell=Cross(UB,A1);// AND A1>=UTH;
Short=Sell;
Cover=Buy;
//=============== APPLY STOP =======================
//ApplyStop( type, mode, amount, exitatstop, volatile = False, ReEntryDelay = 0
)
//------------------ Max Loss Stop in Percent -------------------------
ApplyStop( 0, 1, StopPct, 1, True, 0 ) ;// Percent Max Loss
//------------------- Max Loss Stop in Points ------------------------------
//ApplyStop( 0, 2, StopPoints, 1, True, 0 ) ;// Points Max Loss
//============== DYNAMIC CONTRACT CONTROL =================
MinContracts=1;//Optimize("Min Contracts",1,1,5,1);
MaxContracts=10;//Optimize("Max Contracts",20,5,25,1);
Margin=MarginDeposit;
PctEq=PctEq/100;
Eq=Equity(); // Crashomatic
PS=Min( MaxContracts * Margin , Max( PctEq * Eq , MinContracts * Margin ));
PositionSize = PS;