[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 224

 
Es gibt keine, die Unterstützung für ältere Builds wurde eingestellt.
 

Bitte helfen Sie mir, die Geldverwaltung in meinem EA-Code zu ändern.

In meinem EA gibt es 2 Bedingungen

1 - Mindestmenge + Arbeit mit fester Menge oder 2 - Erhöhung der Menge in % der verfügbaren Mittel

Ich möchte, dass das Lot nach der 1. erfolglosen Transaktion um 0,01 Lot oder nach der 2. erfolglosen Transaktion um 0,02 Lot erhöht wird,

und nach dem 3. Verlust ist die Menge wieder minimal.

Ich brauche Funktionen, die ich in meinen EA einfügen könnte (vorzugsweise so einfach wie möglich)

Ich habe versucht, in Code durch einschließen (lot_lib) es erzeugt eine Menge von Fehlern und funktioniert nicht.

Vielen Dank im Voraus für Ihre Zeit!


 

Hallo!

Ich schreibe einen Code, der darauf abzielt, das Stop-Loss-Niveau auf den niedrigsten/höchsten Punkt der letzten drei Balken zu setzen. Hier ist das Ergebnis:

double FindSL(int mode)
   {
    double sl; //уровень стоплосса
    double buf; //буфер
    double lvl1, lvl2, lvl3; //выборка из 3-х последних баров
    if (mode == 1) //покупали
      {
       lvl1 = iLow(symb, 0, 0);
       lvl2 = iLow(symb, 0, 1);
       lvl2 = iLow(symb, 0, 2);
       buf = MathMin(lvl1, lvl2); //ищем низ
       sl = MathMin(buf, lvl3);
      }
    else if (mode == 2) //продавали
      {
       lvl1 = iHigh(symb, 0, 0);
       lvl2 = iHigh(symb, 0, 1);
       lvl3 = iHigh(symb, 0, 2);
       buf = MathMax(lvl1, lvl2); //ищем вершину
       sl = MathMax(buf, lvl3);
      }
    return (sl);
   }

Die Aufträge werden mit dem folgenden Code geöffnet:

int OpenOrder(int sell_or_buy)                                  //Открытие ордеров
   {
    GetLot();

     if(sell_or_buy==2)                                          //покупка
       {
        StopLoss = FindSL(1);
        OrderSend(symb, OP_BUYSTOP, Lots, iHigh(symb, 0, 1), 0, StopLoss, 
        iHigh(symb, 0, 1)+TakeProfit*Point, "Ichimoku Simple Adviser Trade", 1001, TimeCurrent()+ExpirationTime, Green);    
        return (1);
       }
     else if (sell_or_buy==1)                                    //продажа
       {
        StopLoss = FindSL(2);
        OrderSend(symb, OP_SELLSTOP, Lots, iLow(symb, 0, 1), 0, StopLoss, 
        iLow(symb, 0, 1)-TakeProfit*Point, "Ichimoku Simple Adviser Trade", 1001, TimeCurrent()+ExpirationTime, Red);
        return (1);
       }
     else {return (0);}
   } 

StopLoss ist eine globale Variable.

Beim Testen kommt der Moment, in dem das Geld auf einmal in einem einzigen Handel ausläuft. Lose sind klein, so dass das einzige Problem ist, dass der Stoploss aus irgendeinem Grund nicht gesetzt ist (gleich 0)

Ich kann nicht herausfinden, was der Fehler ist.

Sehen Sie sich bitte den Code an, wo könnte ich einen Fehler machen?

 
gogent:

Hallo!

Ich schreibe einen Code, der darauf abzielt, das Stop-Loss-Niveau auf den niedrigsten/höchsten Punkt der letzten drei Balken zu setzen. Hier ist das Ergebnis:

Die Aufträge werden mit dem folgenden Code geöffnet:

StopLoss ist eine globale Variable.

Beim Testen kommt der Moment, in dem das Geld auf einmal in einem einzigen Handel ausläuft. Lose sind klein, so dass das einzige Problem ist, dass der Stoploss aus irgendeinem Grund nicht gesetzt ist (gleich 0)

Ich kann nicht herausfinden, was der Fehler ist.

Bitte schauen Sie sich den Code an, wo könnte ich einen Fehler machen?

DerStop-Loss ist nach Käufen immer 0.

Grund: Variable lvl3 ist nicht definiert (mechanischer Fehler)

 

Hallo.

Ich beschäftige mich mit der Verbreitung. Der Spread ist immer gegen mich. Ich muss es also zu einem Stop Loss addieren und von einem Take Profit abziehen? Wenn ich also einen Nettogewinn von 50 Pips erzielen möchte (z. B. bei einem Spread von 3 Pips auf ein Währungspaar), muss ich in meinem Auftrag einen Take-Profit von 53 Pips festlegen. Wenn ich einen Nettoverlust von 50 Pips habe, dann sollte ein Stop Loss von 47 Pips gesetzt werden. Habe ich es richtig verstanden?

Vielen Dank im Voraus!

 
01123456789:

Hallo.

Ich beschäftige mich mit der Verbreitung. Der Spread ist immer gegen mich. Also sollte ich es zu einem Stop Loss addieren und von einem Take Profit abziehen? Wenn ich also einen Nettogewinn von 50 Pips erzielen möchte (z. B. bei einem Spread von 3 Pips auf ein Währungspaar), muss ich in meinem Auftrag einen Take-Profit von 53 Pips festlegen. Wenn ich einen Nettoverlust von 50 Pips habe, dann sollte ein Stop Loss von 47 Pips gesetzt werden. Habe ich es richtig verstanden?

Vielen Dank im Voraus!


Hallo!

Wenn es um Ihre Pläne und Erwartungen geht, ist das richtig.

Wenn wir formell sprechen, ist mir nicht klar, was es bedeutet, "in einer Reihenfolge ... " auf Befehl..."

 

Hallo! Helfen Sie mir mit einer benutzerdefinierten Funktion.

Ich verstehe: Wenn die Bedingung wahr ist, gibt sie für isitpik- (wahr). Die Bedingung wird aus dem 0. Puffer berechnet, in dem die Berechnung aus AO liegt. Oder liegt nur der letzte i-Balken im Puffer und beim Eintreten der Bedingungen für diese Kriterien wird dann (true) an isitpik() übergeben? Und warum wird der Variablen (i) der Typ int zugewiesen, wenn die obige Bedingung erfüllt ist?


bool isitpik( int i )
   {
   if(ExtBuffer0[i]>0 && ExtBuffer0[i]>ExtBuffer0[i+1] && ExtBuffer0[i]>ExtBuffer0[i-1])return(true);
   if(ExtBuffer0[i]<0 && ExtBuffer0[i]<ExtBuffer0[i+1] && ExtBuffer0[i]<ExtBuffer0[i-1])return(true);
   }
 
tara:


Hallo!

Wenn es um Ihre Pläne und Erwartungen geht, ist das in Ordnung.

Wenn wir formell sprechen, ist mir nicht klar, was es bedeutet, "in einem Auftrag... spezifizieren Take Profit =53 Punkte".

Als ich das sagte: "Ich meinte einen schwebenden Auftrag (z.B. Buy Stop) mit zwei Spalten für Stop Loss und Take Profit. Das heißt, wenn ich einen Gewinn von 50 Pips erzielen möchte, sollte ich in der schwebenden Order 53 Punkte für den Take Profit angeben, anstatt 50, da 3 Punkte den Spread beeinflussen. Richtig?
 
01123456789:
Mit den Worten: "Ich meinte einen schwebenden Auftrag (z.B. Buy Stop) mit zwei Spalten für Stop Loss und Take Profit. Das heißt, wenn ich einen Gewinn von 50 Pips erzielen möchte, sollte ich in der schwebenden Order 53 Punkte für den Take Profit angeben, anstatt 50, da 3 Punkte den Spread beeinflussen. Oder?

In Aufträgen sollten TP und SL in Preisen und nicht in Punkten angegeben werden.
 
01123456789:
Mit den Worten: "Ich meinte einen schwebenden Auftrag (z.B. Buy Stop) mit zwei Spalten für Stop Loss und Take Profit. Das heißt, wenn ich einen Gewinn von 50 Pips erzielen möchte, sollte ich in der schwebenden Order 53 Punkte für den Take Profit angeben, anstatt 50, da 3 Punkte den Spread beeinflussen. Richtig?
Jedes Maklerunternehmen hat dies in seinem Vertrag. Kaufaufträge werden entlang der Ask-Linie und Verkaufsaufträge entlang der Bid-Linie geschlossen. Wenn Sie alles richtig verstanden haben, können Sie den Spread zu Ihrem Gewinn addieren. Wenn Sie 50 Pips erhalten möchten, erhalten Sie +3 (abhängig vom Spread des Währungspaares). Vergessen Sie nicht, dass alle Diagramme von Bid gezeichnet werden.
Grund der Beschwerde: