[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 132
Perché quando allego questo codice apre un numero incredibilmente grande di trade?
Non può essere, perché nel codice
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);
}
Allora credo che sia tutto:
È giusto?
Ora ho capito.
Grazie.
non c'è una tale funzione incorporata, dovete scriverla voi stessi, ho mostrato un esempio qui:https://www.mql5.com/ru/forum/131277/page113
grazie
Non c'è una tale funzione incorporata, dovete scriverla voi stessi, ho mostrato un esempio qui:https://www.mql5.com/ru/forum/131277/page113
E come prescrivere che l'Expert Advisor abbia solo questa condizione per aprire i trade.
alsu:
Allora non avete bisogno di size-1, altrimenti la prima esecuzione indicizzerà 0-1 e la dimensione dell'array sarà zero.
Allora dovrebbe essere così:
Allora non avete bisogno di size-1, altrimenti l'indicizzazione sarà 0-1 e la dimensione dell'array sarà zero alla prima esecuzione.
Allora va così:
Ci inizializzazione all'inizio del programma int size=1;
non c'è una tale funzione incorporata, dovete scriverla voi stessi, ho mostrato un esempio qui:https://www.mql5.com/ru/forum/131277/page113
Perché quando allego questo codice apre un numero incredibilmente grande di trade?
C'è un'inizializzazione all'inizio del programma int size=1;
Perché quando allego questo codice apre un numero incredibilmente grande di trade?
Non può essere, perché nel codice
niente scambi https://book.mql4.com/ru/trading/ordersend
non può essere lo stesso perché nel codice:
niente scambi https://book.mql4.com/ru/trading/ordersend
Ho inserito
if(profit == 0 &&time == 0){//azioni se la storia è pulita
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,Bid-6*Point);
ritorno;
}
if(profitto >= 0){// azione se l'ultimo ordine era redditizio, o zero
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-12*Point,Bid+12*Point);
ritorno;
}
if(profitto < 0 ){//azioni if(profitto < 0 ){/azioni se l'ultimo ordine non era redditizio
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+15*Point,Bid-15*Point);
ritorno;
}
ritorno(0);
}