[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 132
Wie kommt es, dass, wenn ich diesen Code einfüge, eine unglaublich große Anzahl von Geschäften eröffnet wird?
Das kann nicht sein, denn im Code steht:
double history(){
int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордераfor(int 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){//действия если история чистая
}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым
}
if(profit < 0 ){//действия если последний ордер был убыточным
}
return(0);
}
Dann war's das wohl:
Ist das richtig?
Jetzt habe ich es verstanden.
Ich danke Ihnen.
es gibt keine solche eingebaute Funktion, Sie müssen sie selbst schreiben, ich habe hier ein Beispiel gezeigt:https://www.mql5.com/ru/forum/131277/page113
danke
Es gibt keine solche eingebaute Funktion, Sie müssen sie selbst schreiben, ich habe hier ein Beispiel gezeigt:https://www.mql5.com/ru/forum/131277/page113
Und wie kann man vorschreiben, dass der Expert Advisor nur diese eine Bedingung für die Eröffnung von Trades hat.
alsu:
Dann brauchen Sie size-1 nicht, da sonst beim ersten Durchlauf der Index 0-1 und die Array-Größe Null sein wird.
Dann sollte es so sein:
Dann brauchen Sie size-1 nicht, da sonst die Indizierung 0-1 ist und die Array-Größe beim ersten Durchlauf Null ist.
Dann geht es so:
Dort Initialisierung am Anfang des Programms int size=1;
eine solche eingebaute Funktion gibt es nicht, man muss sie selbst schreiben, ein Beispiel habe ich hier gezeigt:https://www.mql5.com/ru/forum/131277/page113
Warum werden beim Anbringen dieses Codes unglaublich viele Abschlüsse eröffnet?
Es gibt eine Initialisierung am Anfang des Programms int size=1;
Wie kommt es, dass, wenn ich diesen Code einfüge, eine unglaublich große Anzahl von Geschäften eröffnet wird?
Das kann nicht sein, denn im Code steht:
kein Handel https://book.mql4.com/ru/trading/ordersend
kann es nicht dasselbe sein, weil im Code:
kein Handel https://book.mql4.com/ru/trading/ordersend
Ich habe eingefügt
if(profit == 0 &&time == 0){//actions if history is clean
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,Bid-6*Point);
Rückkehr;
}
if(Gewinn >= 0){/// Aktion, wenn die letzte Bestellung gewinnbringend war, oder Null
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-12*Point,Bid+12*Point);
Rückkehr;
}
if(profit < 0 ){//actions if(profit < 0 ){/actions if last order was unprofitable
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+15*Point,Bid-15*Point);
Rückkehr;
}
zurück(0);
}