Hallo,
zum Test habe ich folgende While-Schleife separat vom Hauptcode getestet (hier mit einfacheren, lesbareren Variablen...).
Bei einem Startkurs (Ask) von DAX 12.041,8 wird der StopBuy bei 12.072,5 gesetzt. Er sollte aber 1,5% über 11.980,5, also bei 12.160,2 gesetzt werden.
Das Ziel: Hätte ich bei einer Basis von 11.980,5 einen Ask von 12.300, soll 11.980,5 + 1,5% = 12160,2, dann (weil <Ask) bei 12160,2 + 1,5% = 12.342,6 der StopBuy gesetzt werden (weil ja nun >Ask...
Noch ein Hinweis:
Prüfuwert "Ask + 30" tut nichts zur Sache, den hab ich nur gesetzt, um eine Spanne zu bekommen...
Danke für eure Hilfe!
Hier der Code:
Code:
bool Ereignis=true;
int ticketL;
double Price=11980.5;
if (Ereignis == true)
{
if (OrderType() == OP_BUYSTOP)
{
bool LongResult=true;
}
}
if (LongResult)
double StopBuyOpenValue = Price;
double StopBuy2Low;
double LongValuePerc;
while (Ask +30 > StopBuyOpenValue)
if (LongResult)
{
LongValuePerc = NormalizeDouble(StopBuyOpenValue * NextBuyPercent / 100,Digits); //NextBuyPercent = 1.5
StopBuy2Low = StopBuyOpenValue + LongValuePerc;
StopBuyOpenValue++;
}
bool LStopBuyResult_Restore=false;
LStopBuyResult_Restore = ticketL= OrderSend(Symbol(),OP_BUYSTOP,LotsTraded,StopBuyOpenValue,Slippage,0,0,"BUY(#" + MagicNumberLong + ")",MagicNumberLong,0,Green);
LongResult=false;