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

 
Zhunko:

Vadim, können Sie in Java programmieren?

 

Kann jemand das einfachste Skript zur Berechnung des Lots für ein klassisches Martingal posten: Wenn der vorherige Handel mit einem Verlust abgeschlossen wurde, wird der nächste mit einem doppelten Lot eröffnet. Ich habe es selbst geschrieben:

extern double Lot = 0.1; extern double MM_koef = 2; extern int magic = 56565;
double Lots=Lot;


{ OrderSelect(OrdersHistoryTotal(), SELECT_BY_POS, MODE_HISTORY); //Überprüfung der letzten Bestellung aus der Historie
if( OrderMagicNumber() == magic
&& ( (OrderType() == OP_BUY && (OrderOpenPrice()-OrderClosePrice())<0) //für Kauf bedeutet dies Verlust
|| (OrderType() == OP_SELL && (OrderOpenPrice()-OrderClosePrice())>0) //für Verkauf bedeutet dies Verlust
)
)
Lots=OrderLots()*MM_koef;Print(Lots);
}
if (Lots<=0) Lots=Lot;

....OrderSend(Symbol(), OP_BUY, Lose, .......

Die automatische Berechnung des Loses bei einem Martin funktioniert nicht, sondern wird aus irgendeinem Grund mit 0,1 angenommen? Kann mir bitte jemand sagen

 
AdvoTM: Wenn der vorherige Handel mit einem Verlust abgeschlossen wurde, wird der nächste mit einem doppelten Lot eröffnet.

Hier ist etwas Ähnliches für Ihre Zwecke:

double history(){
   int i;
//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера   
   double profit;
   datetime time;
   time = 0;
   profit = 0;
   for(i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордера
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
            if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной паре
               if(time<OrderCloseTime()){//(сравниваем его с хранящимся в переменной time) 
                  time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
                  profit=OrderProfit();//и заодно запоминаем прибыль ордера
               }
            }
         }
   }
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
   if(profit == 0 &&time == 0){//действия если история чистая
      Print("история чистая");
   }
   if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым
      Print("последний ордер был прибыльным, или нулевым");
   }
   if(profit <  0 ){//действия если последний ордер был убыточным
      Print("последний ордер был убыточным");
   }
return(profit);// вернем в качестве результата функции значение прибыли последнего ордера из истории, так на всякий случай ;)
}
 
Können Sie mir bitte sagen, warum es nicht möglich ist, sich hier einzuloggen https://www.mql5.com/ru/auth_login? Ich kann meinen Benutzernamen und mein Passwort nicht eingeben (der Cursor blinkt nicht, oder es ist überhaupt kein Cursor zu sehen).
 
yosuf:
Können Sie mir bitte sagen, warum es unmöglich ist, sich hier einzuloggen https://www.mql5.com/ru/auth_login? Ich kann meinen Benutzernamen und mein Passwort nicht eingeben (der Cursor blinkt nicht, oder es ist überhaupt kein Cursor zu sehen).

Mit Ihnen stimmt etwas nicht.

Ich habe es versucht. Ohne Probleme eingeloggt.

 
Meine Herren, bitte erläutern Sie die Inanspruchnahme... Nun, maximaler Drawdown ist klar, aber relativer Drawdown ist relativ zu was? und auch absoluter Drawdown... es ist nicht einmal in % angegeben, was ist es?
 
DhP:

Mit Ihnen stimmt etwas nicht.

Ich habe es versucht. Ich bin ohne Probleme reingekommen.

Was soll ich tun, mich erneut anmelden? Oder an wen kann ich mich wenden, um Hilfe zu erhalten?
 
yosuf:
Was soll ich tun, mich neu registrieren? Oder an wen kann ich mich wenden, um Hilfe zu erhalten?
Ich würde zuerst versuchen, den Computer neu zu starten...)
 
DhP:
Ich würde zuerst versuchen, den Computer neu zu starten...)

Ein Neustart hat nicht geholfen
 

Was ist der Grund dafür, dass im EA für OrderModify manchmal die Änderung automatisch erfolgt und manchmal das Fenster angezeigt wird und man die Schaltfläche zum Bestätigen drücken muss (das Fenster, das sich mit F9 in MT öffnet).

Es gibt nur eine Zeile OrderModify(......) im Code und die oben beschriebene Logik ist genau nicht implementiert.

Ich denke, wenn OrderModifu fehlschlägt, wird die Maklerfirma ein Signal senden, um dieses Fenster zu öffnen. Ist das möglich?