Fehlermeldung bei OrderSend "Invalid Price" - Seite 2

 
amando #:
zeig mal deinen code, dann sieht man vielleicht mehr

Hier mal mein Code, mit dem Einstieg, SL und TP berechnet werden und der invalid Price für den Einstieg dann rauskommt, wenn vermutlich der aktuelle Kurs zu nah dran ist.

Ich finde aber einfach den Fehler nicht. Freezelevel ergibt immer 0.0

Für euch bestimmt totales Chaos^^

  double Einstieg, SL, TG, Tickverlust;
  double Spanne = iHigh(Symbol(),PERIOD_CURRENT,Kerze)-iLow(Symbol(),PERIOD_CURRENT,Kerze);
  double Spread = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD)*SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE);
  double EntryPuffer = SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE);
  double ExitPuffer = 2*SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE);
  double FreezeLevel = SymbolInfoInteger(Symbol(), SYMBOL_TRADE_FREEZE_LEVEL)*SymbolInfoDouble(Symbol(),SYMBOL_POINT);
  int Komma = 4; //SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE);
  double CRVneu;
  if(TD==TrendH1) {CRVneu= 1;}//CRV=2
  else {CRVneu=CRV;}
  if(TD=="Long") 
    {Einstieg=NormalizeDouble(iHigh(Symbol(),PERIOD_CURRENT,Kerze)+EntryPuffer+Spread,SYMBOL_DIGITS);
    //Überprüfen des Einstiegkurses
    if(Einstieg-SymbolInfoDouble(Symbol(),SYMBOL_ASK)<FreezeLevel)
    {Alert("Einstieg zu nah am Freezelevel: " +Einstieg+ " < "+ (SymbolInfoDouble(Symbol(),SYMBOL_ASK)+FreezeLevel) + " Ask: "+SymbolInfoDouble(Symbol(),SYMBOL_ASK) + " FreezLevel: "+FreezeLevel+ " korrigiert auf: "+(SymbolInfoDouble(Symbol(),SYMBOL_ASK)+FreezeLevel+EntryPuffer));
    Einstieg = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK)+FreezeLevel+EntryPuffer,SYMBOL_DIGITS);}
    else {Alert("Einstieg klappt: " +Einstieg+ " >= "+ (SymbolInfoDouble(Symbol(),SYMBOL_ASK)+FreezeLevel) + " Ask: "+SymbolInfoDouble(Symbol(),SYMBOL_ASK) + " FreezLevel: "+FreezeLevel);}
    SL=NormalizeDouble(iLow(Symbol(),PERIOD_CURRENT,iLowest(Symbol(),PERIOD_CURRENT,MODE_LOW,5,Kerze))-ExitPuffer,SYMBOL_DIGITS);
    Alert("Long SL " + SL + " Ex " + iLow(Symbol(),PERIOD_CURRENT,iLowest(Symbol(),PERIOD_CURRENT,MODE_LOW,5,Kerze)) + " -5 "+ExitPuffer);
    Spanne = Einstieg-SL;
    TG=NormalizeDouble(Einstieg+(CRVneu*Spanne),SYMBOL_DIGITS);}
  else if(TD=="Short") 
    {Einstieg=NormalizeDouble(iLow(Symbol(),PERIOD_CURRENT,Kerze)-EntryPuffer,SYMBOL_DIGITS);
    //Überprüfen des Einstiegkurses
    if(SymbolInfoDouble(Symbol(),SYMBOL_BID)-Einstieg<FreezeLevel)
    {Alert("Einstieg zu nah am Freezelevel: " +Einstieg+ " < "+ (SymbolInfoDouble(Symbol(),SYMBOL_BID)-FreezeLevel) + " Bid: "+SymbolInfoDouble(Symbol(),SYMBOL_BID) + " FreezLevel: "+FreezeLevel+ " korrigiert auf: "+(SymbolInfoDouble(Symbol(),SYMBOL_BID)-FreezeLevel-EntryPuffer));
    Einstieg=NormalizeDouble((SymbolInfoDouble(Symbol(),SYMBOL_BID)-FreezeLevel-EntryPuffer),SYMBOL_DIGITS);}
    else {Alert("Einstieg klappt: " +Einstieg+ " <= "+ (SymbolInfoDouble(Symbol(),SYMBOL_BID)-FreezeLevel) + " Bid: "+SymbolInfoDouble(Symbol(),SYMBOL_BID) + " FreezLevel: "+FreezeLevel);}
    SL=NormalizeDouble(iHigh(Symbol(),PERIOD_CURRENT,iHighest(Symbol(),PERIOD_CURRENT,MODE_HIGH,5,Kerze))+ExitPuffer+Spread,SYMBOL_DIGITS);
    Alert("Short SL " + SL + " Ex " + iHigh(Symbol(),PERIOD_CURRENT,iHighest(Symbol(),PERIOD_CURRENT,MODE_HIGH,5,Kerze)) + " +5 "+ExitPuffer+" Spread: "+Spread);
    Spanne = SL-Einstieg;
    TG=NormalizeDouble(Einstieg-(CRVneu*Spanne),SYMBOL_DIGITS);}