Fehler bei Berechnung oder Send?
Hi Leute, ich versuche schon seit stunden den Fehler zu finden. Der EA läuft an sich. Ziel ist, dass er byu-/send-Orders auslöst, wenn sich Main und Signal kreuzen, wobei die Variable Distance den Abstand zwischen Main und Signal darstellt. Solange kein neues Crossing von Main und signal stattfindet (inkl. der Distance) soll nix passieren, ansonsten soll er zB Sell schliessen und buy öffnen.
{
if(PositionOpen()) return(0);
crossedup = false;
crosseddown = false;
for(int i = 0;i < 3;i++)
{
mline[i] = iStochastic(NULL, Period(),K_Period, D_Period, Slowing, MA_Method, 0, MODE_MAIN, i);
sline[i] = iStochastic(NULL, Period(),K_Period, D_Period, Slowing, MA_Method, 0, MODE_SIGNAL, i);
}
if ((mline[1] < sline[1]) && (mline[2] -Distance> sline[2])) crosseddown = true;
else if ((mline[1] > sline[1]) && (mline[2]+Distance < sline[2])) crossedup = true;
else return(0);
if (crossedup) GoLong();
if (crosseddown) GoShort();
return(0);
}
.....
int GoLong()
{
longtkt = -1;
cnt = 0;
while((longtkt < 0) && (cnt < 20))
{
longtkt = OrderSend(Symbol(), OP_BUY, AdvancedMM(), Ask, 2, 0,0, NULL, MagicNumber, 0, Green);
cnt++;
}
if (longtkt>0)
{
OrderSelect(longtkt, SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(TheStoppLoss,Digits),NormalizeDouble(TheT akeProfit,Digits),0,Green);
}
OrderClose(OrderTicket(),OrderLots(),OrderClosePri ce(), Slippage,Red);
return(longtkt);
}
...
bool PositionOpen()
{
t = OrdersTotal();
for(int z = 0;z < t;z++)
{
OrderSelect(z, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol()) return(true);
}
return(false);
Habe ich das Distance falsch gesetzt? Oder wortan kann es liegen?
Danke euch vielmals für die Zeit...
|