[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 85

 
OTPOK:

Und noch etwas: Wie kann ich den Stoploss eines bereits offenen Auftrags programmatisch ändern?


https://docs.mql4.com/ru/trading/OrderModify
 
FOReignEXchange:


Guten Tag. Ich nehme an, Sie haben Variablen noch nie Werte zugewiesen. Das ist sehr einfach zu bewerkstelligen.

PreisKaufen=Fragen


Tatsächlich: PreisKauf=Gebot;
 
Roger:

Tatsächlich: PreisKauf=Gebot;

Nun, das ist Ansichtssache. Und wenn realistisch betrachtet, Asc.
 

Hallo.

Bitte sagen Sie mir, ob der Ausdruck zur Berechnung der Gesamtsumme einer Zahlenfolge delta*(2*Lot+Lot*(i-2))*(i-1)/2richtig ist :

for (int i=1; i<=MaxOrders; i++) {

double Sum=Lot;

Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2; }

Wenn es keine Fehler gibt, wie ersetzt man den Wert "Summe+" in einem Ausdruck wie X=("Summe+" + Y)/Z ???

Quellcode:

for (int i=1; i<=MaxOrders; i++)
   {
      if (BUY)
      {
         Price = NormalizeDouble(Ask-delta*i*Point,Digits);
         double Sum=Lot;
         Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2;
         DeltaProfitL = (Sum+i*delta*Lot+Lot*R_Lot*R_point+Lot*R_Lot*delta*i)/((2*Lot+Lot*(MaxOrders-1))*MaxOrders/2+Lot+Lot*R_Lot);
         if (takeprofit!=0) TP  = NormalizeDouble(Price + (takeprofit + DeltaProfitL*zero_tp)*Point,Digits); else TP=0;
         if (stoploss!=0)   SL  = NormalizeDouble(Price - stoploss*Point,Digits); else SL=0;     
         OPENORDER ("Buy Limit",Price,SL,TP,i);
      }
   }

Vielen Dank im Voraus.

 
nemo811:

Hallo.

Bitte sagen Sie mir, ob der Ausdruck zur Berechnung der Gesamtsumme einer Zahlenfolge delta*(2*Lot+Lot*(i-2))*(i-1)/2richtig ist :

for (int i=1; i<=MaxOrders; i++)

double Sum=Lot;

Sum+=delta*(2*Lot+Lot*(i-2))*(i-1)/2;

Wenn es keine Fehler gibt, wie ersetzt man den Wert "Summe+" in einem Ausdruck wie X=("Summe+" + Y)/Z?

Vielen Dank im Voraus.


Wäre das nicht möglich?

for (int i=1; i<=MaxOrders; i++)

Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2;

Es ist nur nicht klar, warum Sum=Lot; Und wofür ist es im Allgemeinen.

 
FOReignEXchange:


Es ist nur nicht klar, warum Summe=Los; und wofür im Allgemeinen.

Eine ähnliche Frage habe ich auf Seite 81 gestellt. Ich habe alles entsprechend der mir gegebenen Antwort getan. Aber bis jetzt ohne Ergebnis.

Summe=Summe+Delta*(2*Lot+Lot*(i-2))*(i-1)/2; - ist für meine Berechnung nicht geeignet.

 
delta*(2*Lot+Lot*(i-2))*(i-1)/2 ist die Zahlenformel für die betreffende Folge. Ich muss ALLE Zahlen der gegebenen Folge summieren.
 
nemo811:
delta*(2*Lot+Lot*(i-2))*(i-1)/2 ist die Zahlenformel für die betreffende Folge. Ich muss ALLE Zahlen der gegebenen Folge zusammenzählen.


Also habe ich eine Formel dafür geschrieben.

Ich habe verstanden, dass Sie etwas wie folgt berechnen müssen

Summe =delta*(2*Lot+Lot*(1-2))*(1-1 )/2 +delta*(2*Lot+Lot*(2-2))*(2-1 )/2 +delta*(2*Lot+Lot*(3-2))*(3-1)/2 + ... usw.

Dies ist die Formel Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2, wobei Sie die Grenzen für i im Operatorenkörper festlegen. Wenn der Operator fertig ist, nimmt die Summe den gewünschten Wert an. Es ist wichtig, dass die Summe gleich Null ist, bevor der Operator mit den Berechnungen beginnt. Am Bedienerausgang nimmt Sum den gewünschten Wert an.

 

Ich bin nicht sicher, wie viel es kosten würde , einen EA zu bestellen, aber ich bin sicher, dass ich ihn in beiden Charts zum Laufen bringen kann.

Ah, und im Allgemeinen ist es möglich, es einmal für 2 verschiedene Währungen funktionieren (gleichzeitig auf zwei Charts) und auf jedem der verschiedenen Trades geöffnet.

Ich habe zum Beispiel am ersten Tag gekauft und am zweiten Tag verkauft?

Und beim Abschluss einer der Transaktionen wird das Gegenteil der bereits geöffneten Transaktion geöffnet....

Und vielleicht weiß jemand, vielleicht gibt es einen solchen Expert Advisor, nur eine gute Idee kam mir in den Sinn.....

 
for (int i=1; i<=MaxOrders; i++)
   {
      if (BUY)
      {
         Price = NormalizeDouble(Ask-delta*i*Point,Digits);
         double Sum=0;
         Sum=Sum+delta*(2*Lot+Lot*(i-2))*(i-1)/2;   ........
      }
}
Ich danke Ihnen. Ist das die richtige Entscheidung?