Hi
I need help with this afl, could someone please check where I went wrong please? The point of this afl is to set my entry, target and stoploss point, save it to disk and then I can set it for many other symbols without I need to open so many charts, just 1 chartID.
_SECTION_BEGIN("MyTrade");
PersistentPath = "C:\\Program Files (x86)\\AmiBroker\\PersistentVariables\\";
function PersistentVarSetText( VarName, String )
{
global PersistentPath;
fh = fopen( PersistentPath+VarName+Name()+".pva","w" );
if( fh )
{
fputs( String, fh );
fclose( fh );
}
return fh;
}
function PersistentVarGetText( VarName )
{
global PersistentPath;
fh = fopen( PersistentPath+VarName+Name()+".pva","r" );
if( fh )
{
String = fgets( fh );
fclose( fh );
}
else string = "";
return String;
}
function PersistentVarSet( VarName, Number )
{
global PersistentPath;
String = NumToStr(Number);
fh = fopen( PersistentPath+VarName+Name()+".pva","w" );
if( fh )
{
fputs( String, fh );
fclose( fh );
}
return fh;
}
function PersistentVarGet( VarName )
{
global PersistentPath;
fh = fopen( PersistentPath+VarName+Name()+".pva","r" );
if( fh )
{
String = fgets( fh );
fclose( fh );
}
else string = "";
Number = StrToNum(String);
return Number;
}
function PersistentVarRemove( VarName )
{
global PersistentPath;
Fn=PersistentPath + VarName + Name()+ ".pva";
fh=fdelete( Fn ) ;
return fh;
}
LastVisiblebar = Status("firstvisiblebarindex");
FirstVisibleBar= Status("lastvisiblebarindex");
d=FirstVisibleBar-LastVisiblebar;
ShowTC = ParamToggle("Show Trade","No|Yes", 0);
CurrentSymbol = PersistentVarGetText("TestNumber4");
if( CurrentSymbol == "" )
{
EntryDate = DateNum() == ParamDate("Date", "12/02/2018", 0);
TotEquity = Param("Equity (x1000)", 100000, 5000,100000,1000);
PerToRisk = Param("PercentToRisk", 2, 2,10,1);
entry = Param("Entry", 13000, 50,100000,1);
target = Param("Target", 15000, 50,100000,1);
stoploss = Param("Stoploss", 12000, 50,100000,1);
PersistentVarSet( "TestNumber1", EntryDate );
PersistentVarSet( "TestNumber2", TotEquity );
PersistentVarSet( "TestNumber3", PerToRisk );
PersistentVarSet( "TestNumber4", entry );
PersistentVarSet( "TestNumber5", target );
PersistentVarSet( "TestNumber6", stoploss );
Reward=Target-Entry;
Risk=Entry-StopLoss;
RR=Reward/Risk;
p_reward=reward*100/Entry;
p_Risk=Risk*100/Entry;
TradeSize = ((((PerToRisk*TotEquity*1000)/100)/Risk)/500);
}
else
{
PVAEntryDate = PersistentVarGet("TestNumber1");
PVATotEquity = PersistentVarGet("TestNumber2");
PVAPerToRisk = PersistentVarGet("TestNumber3");
PVAEntry = PersistentVarGet("TestNumber4");
PVATarget = PersistentVarGet("TestNumber5");
PVAStopLoss = PersistentVarGet("TestNumber6");
}
if(ShowTC)
{
Plot(PVAEntryDate , "", colorRose, styleHistogram | styleOwnScale | styleNoLabel); //vertical line on entered day
Plot(PVAentry, "", colorGold, styleLine, Null, Null, 10 );
Plot(PVAstoploss, "", colorRed, styleLine, Null, Null, 10 );
Plot(PVAtarget, "", colorGreen, styleLine, Null, Null, 10 );
PlotText("Risk: "+Prec(abs(Risk), 2 )+" ("+Prec(abs(P_Risk), 2 )+"%)",FirstVisibleBar-int((d*12)/100),StopLoss+Risk/2,colorRed);
PlotText("Reward: "+Prec(abs(Reward), 2 )+" ("+Prec(abs(p_reward), 2 )+"%)",FirstVisibleBar-int((d*12)/100),Entry+Reward/2,colorGreen);
Title += StrFormat("\nReward / Risk: " +WriteVal(RR,1.1) + "\nTrade Size: " +WriteVal(TradeSize,1.0) + " lots" );
}
_SECTION_END();
Thanks.