[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 152

 
Zhunko:

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

 
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).

C'è qualcosa che non va in te.

L'ho provato. Registrato senza problemi.

 
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'è?
 
DhP:

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?
 
yosuf:
Cosa devo fare, registrarmi di nuovo? O dove posso andare a chiedere aiuto?
Proverei a riavviare il computer prima...)
 
DhP:
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?