Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 465

 

Hallo. Ich habe vor kurzem mit dem Studium von MQL4 begonnen und bin auf das folgende Missverständnis gestoßen.

Wie Sie im unten stehenden Beispiel sehen können, sollte der Auftrag geschlossen werden, wenn die höchste Kerze des Balkens 1,3058 erreicht. Der Auftrag wird gemäß den Bedingungen geschlossen, aber der Schlusskurs ist nicht 1,3058(er könnte 1-3 Pips höher sein). Wie schließen wir also richtig? Möchte ich, dass mein Auftrag bei 1,3058geschlossen wird ?

if(High[0] >= 1.3058)

OrderClose( OrderTicket(), OrderLots(),  NormalizeDouble(Ask,Digits), 0, Red) ;
 
Mr.Dmitry:

Hallo. Ich habe vor kurzem mit dem Studium von MQL4 begonnen und bin auf das folgende Missverständnis gestoßen.

Wie Sie im unten stehenden Beispiel sehen können, sollte der Auftrag geschlossen werden, wenn die höchste Kerze des Balkens 1,3058 erreicht. Der Auftrag wird gemäß den Bedingungen geschlossen, aber der Schlusskurs ist nicht 1,3058(er könnte 1-3 Pips höher sein). Wie schließen wir also richtig? Möchte ich, dass mein Auftrag bei 1,3058geschlossen wird ?

Das geht nicht. Der MT hat einen Schlupf, der immer zu Gunsten des Brokers ausfällt.
 
Mr.Dmitry:

Hallo. Ich habe vor kurzem mit dem Studium von MQL4 begonnen und bin auf das folgende Missverständnis gestoßen.

Wie Sie im unten stehenden Beispiel sehen können, sollte der Auftrag geschlossen werden, wenn die höchste Kerze des Balkens 1,3058 erreicht. Der Auftrag wird gemäß den Bedingungen geschlossen, aber der Schlusskurs ist nicht 1,3058(er könnte 1-3 Pips höher sein). Wie schließen wir also richtig? Siemöchten, dass Ihr Auftrag bei 1,3058geschlossen wird ?

Stellen Sie sich vor, dass der Kurs beim letzten Tick bei 1,3057 und beim aktuellen Tick bei 1,3059 liegt.

Sagen Sie später nicht, dass der Auftrag nicht zustande gekommen ist. Sie führen die Prüfung nicht korrekt durch. Sie müssen es auf "mehr oder gleich" oder "weniger oder gleich" und nichts anderes tun.

 
artmedia70:

Stellen Sie sich eine Situation vor, in der der Kurs beim letzten Tick bei 1,3057 lag und beim aktuellen Tick auf 1,3059 gestiegen ist.

Sie sollten nicht sagen, dass der Auftrag nicht abgeschlossen ist. Sie prüfen es falsch. Sie sollten nach "mehr oder gleich" oder "weniger oder gleich" suchen.


Das ist es, was ich tue >=. Das obige ist nur ein Beispiel (entschuldigen Sie die Tautologie), und das Problem ist nicht, dass der Auftrag nicht abgeschlossen ist, sondern dass er nicht so abgeschlossen ist, wie ich es gerne hätte.

borilunad:
Auf keinen Fall, MT sieht Slippage-Slippage vor, was immer zu Gunsten des Brokers ist.
Es gibt also überhaupt keine Möglichkeit, dies zu tun? Traurig (((.
 
Zhunko:
Sie könnten ein Skript schreiben, das diese Linie zeichnet. Binden Sie dieses Skript an einen Hotkey.


Danke, ich werde es ausprobieren.
 
Mr.Dmitry:

Das tue ich >=. Das obige Beispiel ist nur ein Beispiel (entschuldigen Sie die Tautologie) und das Problem ist nicht, dass der Auftrag nicht geschlossen wird, sondern dass er nicht so geschlossen wird, wie ich es gerne hätte.

Ich meine, es gibt überhaupt keinen Ausweg? Traurig ((!)
Wenn Sie den Stop-Loss gesetzt haben, haben Sie den Break-Even erreicht, haben mit dem Traden begonnen und der Preis hat sich plötzlich in die entgegengesetzte Richtung gedreht und bei dieser Bewegung wird der Auftrag durch den Stop-Loss nicht mit Gewinn, sondern mit Verlust geschlossen! Ausrutscher+Ausweitung der Spanne=:(((
 

Guten Abend zusammen!

Können Sie mir sagen, was ich falsch mache?

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

zurück(0);

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. Ich habe versucht, ein Skript für den Aufruf der Trendlinie zu schreiben, so dass es dann möglich wäre, einen Hotkey zuzuweisen, um die Trendlinie anzuzeigen.

 
okvseok:

Guten Abend zusammen!

Können Sie mir sagen, was ich falsch mache?

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

zurück(0);

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. Ich habe versucht, ein Skript für den Aufruf der Trendlinie zu schreiben, so dass es dann möglich wäre, einen Hotkey zuzuweisen, um die Trendlinie anzuzeigen.

Bei der Erstellung eines Objekts sollten Sie zumindest eine Koordinate angeben.

// Формирование линии
int fLine(string Name            // Префикс имени
         ,string Text            // Префикс описания
         ,int Number             // Номер
         ,int Bar1,double Price1 // Первая точка
         ,int Bar2,double Price2 // Вторая точка
         ,int Bar3,double Price3 // Вспомогательная точка
         ,color Цвет
         ,int Стиль=STYLE_SOLID  // Сплошная
         ,int Видимость=0        // Только на текущем таймфрейме
         ,bool Луч=false
         ,int Толщина=1
         ,bool Фон=true ){
   int Error;
   datetime Time1=Time[Bar1],
            Time2=Time[Bar2];
   if( Number>0 ) Name=Name+Number;
   if( Bar1<Bar2
    || Bar2<LastBar
    || Price1<Zero
    || Price2<Zero ){
      Error=MyError;
      if( РежимОтладки && ПечататьПредупреждения ) Print("*     "+Name+" не создан, параметры: "+DoubleToStr(Price1,Digits)
                                       +" ("+Bar1+"/"+TimeToStr(Time1)+")..."
                                       +DoubleToStr(Price2,Digits)+" ("+Bar2+"/"+TimeToStr(Time2)+")");
      return(Error);
   }
   Error=fObjectDelete(Name);
   if( Error>0 && Error<MyError ){
      return(Error);
   }
   if( ObjectCreate(Name,OBJ_TREND,0,Time1,Price1,Time2,Price2,Time[Bar3],Price3) ){
      if( Text!="" && Number>0 ){
         Text=Text+Number;
         Фон=true;
      }
      if( !ObjectSetText(Name, Text)
       || !ObjectSet(Name, OBJPROP_COLOR, Цвет)
       || !ObjectSet(Name, OBJPROP_STYLE, Стиль)
       || !ObjectSet(Name, OBJPROP_RAY, Луч)
       || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость)
       || !ObjectSet(Name, OBJPROP_WIDTH, Толщина)
       || !ObjectSet(Name, OBJPROP_BACK, Фон) ){
         Error=GetLastError();
         if( !РежимОтладки ) PlaySound("alert.wav");
         Print("***** "+Name+" - ошибка модификации параметров "+Error);
   }  }
   else{
      Error=GetLastError();
      if( !РежимОтладки ) PlaySound("alert.wav");
      Print("***** "+Name+" - объект не создан, ошибка "+Error);
   }
   return(Error);
}
 
tara:

Bei der Erstellung eines Objekts sollten Sie zumindest eine Koordinate angeben.


und wenn ich die Koordinaten bereits mit der Maus festlegen möchte. Ich muss nur die Trendlinie selbst aufrufen, aber das hat noch nicht geklappt. Ist dies möglich?
 
okvseok:

und wenn ich die Koordinate schon mit der Maus zeigen will. Ich muss nur die Trendlinie selbst aufrufen, aber noch nicht ausgelöst. Ist das möglich?

Es ist nicht ganz einfach, eine Trendlinie zu erstellen, und man macht es mit der Maus.
Grund der Beschwerde: