[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 152
Qualcuno può postare lo script più semplice per calcolare il lotto per una martingala classica: se il trade precedente è stato chiuso in perdita, il prossimo si apre con un doppio lotto. L'ho scritto io stesso:
extern double Lot = 0.1; extern double MM_koef = 2; extern int magic = 56565; double Lots=Lot;
{ OrderSelect(OrdersHistoryTotal(), SELECT_BY_POS, MODE_HISTORY); //verifica l'ultimo ordine dalla storia if( OrderMagicNumber() == magic && ( (OrderType() == OP_BUY && (OrderOpenPrice()-OrderClosePrice())<0) //per comprare significa perdita || (OrderType() == OP_SELL && (OrderOpenPrice()-OrderClosePrice())>0) //per vendere significa perdita ) ) Lots=OrderLots()*MM_koef;Print(Lots); } if (Lots<=0) Lots=Lot;
....OrderSend(Symbol(), OP_BUY, Lots, .......
L'autocalcolo del lotto su un Martin non funziona, ma viene accettato uguale a 0,1 per qualche motivo? Qualcuno può dirmi per favore
AdvoTM: Se il commercio precedente è stato chiuso con una perdita - il prossimo viene aperto con un doppio lotto.
ecco qualcosa di simile per i vostri scopi a portata di mano:
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);// вернем в качестве результата функции значение прибыли последнего ордера из истории, так на всякий случай ;)
}
Potete dirmi perché non è possibile accedere qui https://www.mql5.com/ru/auth_login? Non riesco a inserire il mio nome utente e la mia password (il cursore non lampeggia o non è affatto presente).
yosuf: Potete dirmi perché è impossibile accedere qui https://www.mql5.com/ru/auth_login? Non riesco a inserire il mio nome utente e la mia password (il cursore non lampeggia o non c'è affatto).
Signori, per favore, spiegate il prelievo... Beh, il drawdown massimo è chiaro, ma il drawdown relativo è relativo a cosa? e anche il drawdown assoluto... non è nemmeno specificato in %, cos'è?
Qual è la ragione per cui nell'EA per OrderModify a volte la modifica viene fatta automaticamente e a volte viene visualizzata la finestra e bisogna premere il pulsante per confermare (la finestra che si apre con F9 in MT).
C'è solo una linea OrderModify(......) nel codice e la logica sopra descritta non è esattamente implementata.
Ho un'idea che se l'OrderModifu fallisce, la società di intermediazione invierà un segnale per aprire questa finestra. È possibile?
Vadim, sai codificare in Java?
Qualcuno può postare lo script più semplice per calcolare il lotto per una martingala classica: se il trade precedente è stato chiuso in perdita, il prossimo si apre con un doppio lotto. L'ho scritto io stesso:
extern double Lot = 0.1; extern double MM_koef = 2; extern int magic = 56565;
double Lots=Lot;
{ OrderSelect(OrdersHistoryTotal(), SELECT_BY_POS, MODE_HISTORY); //verifica l'ultimo ordine dalla storia
if( OrderMagicNumber() == magic
&& ( (OrderType() == OP_BUY && (OrderOpenPrice()-OrderClosePrice())<0) //per comprare significa perdita
|| (OrderType() == OP_SELL && (OrderOpenPrice()-OrderClosePrice())>0) //per vendere significa perdita
)
)
Lots=OrderLots()*MM_koef;Print(Lots);
}
if (Lots<=0) Lots=Lot;
....OrderSend(Symbol(), OP_BUY, Lots, .......
L'autocalcolo del lotto su un Martin non funziona, ma viene accettato uguale a 0,1 per qualche motivo? Qualcuno può dirmi per favore
ecco qualcosa di simile per i vostri scopi a portata di mano:
Potete dirmi perché è impossibile accedere qui https://www.mql5.com/ru/auth_login? Non riesco a inserire il mio nome utente e la mia password (il cursore non lampeggia o non c'è affatto).
C'è qualcosa che non va in te.
L'ho provato. Registrato senza problemi.
C'è qualcosa che non va in te.
L'ho provato. Sono entrato senza problemi.
Cosa devo fare, registrarmi di nuovo? O dove posso andare a chiedere aiuto?
Proverei a riavviare il computer prima...)
Il riavvio non ha aiutato
Qual è la ragione per cui nell'EA per OrderModify a volte la modifica viene fatta automaticamente e a volte viene visualizzata la finestra e bisogna premere il pulsante per confermare (la finestra che si apre con F9 in MT).
C'è solo una linea OrderModify(......) nel codice e la logica sopra descritta non è esattamente implementata.
Ho un'idea che se l'OrderModifu fallisce, la società di intermediazione invierà un segnale per aprire questa finestra. È possibile?