Come ottimizzare correttamente un consulente - pagina 6

 

Il primo su x è SL e quello su y è TP.

Penso che la sinistra sia la zona positiva e la destra sia un colpo casuale... Bene SL su euro quid non può essere 190 o più per M5 periodo...

 
Loring писал (а) >>
e di conseguenza.

Attenzione, non lasciatevi trasportare dalla martingala. Gli EA erano fatti su misura, li ho solo avvertiti che li avrei messi in circolazione. Non mi piace questa tecnologia. È molto rischioso. Si può usare quando la probabilità di un buon risultato è abbastanza alta. L'unica cosa che resta da fare è creare un tale meccanismo.

 

Ma un po' di test è possibile .... Il risultato, a proposito, è vicino al mio algoritmo. Così non mi strapperò i capelli... Ma voglio fare conoscenza.

 
Sì, beh... Come diceva Zverev, "La stella è sotto shock"... L'algoritmo si comporta in modo strano, o come gli piace essere... È allora che si accende il reinvestimento.
Strategy Tester Report
VininE_Game_1
FxProfit-Demo (Build 217)
Символ    EURUSD (Euro vs US Dollar)
Период    5 Минут (M5) 2008.06.01 22:05 - 2008.06.27 21:55 (2008.06.01 - 2008.06.29)
Модель    Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)
Параметры    Lots=0.1; MaximumRisk=6; cmd=0; TP=262; SL=18; MagicNumber=0; 

Баров в истории    6749    Смоделировано тиков    152889    Качество моделирования    90.00%
Ошибки рассогласования графиков    0                

Начальный депозит    1500.00                
Чистая прибыль    7908.10    Общая прибыль    11037.80    Общий убыток    -3129.70
Прибыльность    3.53    Матожидание выигрыша    790.81        
Абсолютная просадка    662.60    Максимальная просадка    4846.40 (54.75%)    Относительная просадка    54.75% (4846.40)

Всего сделок    10    Короткие позиции (% выигравших)    5 (20.00%)    Длинные позиции (% выигравших)    5 (40.00%)
    Прибыльные сделки (% от всех)    3 (30.00%)    Убыточные сделки (% от всех)    7 (70.00%)
Самая большая    прибыльная сделка    6359.60    убыточная сделка    -1280.00
Средняя    прибыльная сделка    3679.27    убыточная сделка    -447.10
Максимальное количество    непрерывных выигрышей (прибыль)    2 (4678.20)    непрерывных проигрышей (убыток)    4 (-612.60)
Максимальная    непрерывная прибыль (число выигрышей)    6359.60 (1)    непрерывный убыток (число проигрышей)    -1280.00 (1)
Средний    непрерывный выигрыш    2    непрерывный проигрыш    2

№    Время    Тип    Ордер    Объём    Цена    S / L    T / P    Прибыль    Баланс
1    2008.06.01 22:06    buy    1    0.90    1.5555    1.5535    1.5815    
2    2008.06.02 03:31    s/l    1    0.90    1.5535    1.5535    1.5815    -192.60    1307.40
3    2008.06.03 00:00    sell    2    0.80    1.5539    1.5559    1.5279    
4    2008.06.03 08:30    s/l    2    0.80    1.5559    1.5559    1.5279    -160.00    1147.40
5    2008.06.04 00:01    buy    3    0.70    1.5439    1.5419    1.5699    
6    2008.06.04 08:26    s/l    3    0.70    1.5419    1.5419    1.5699    -140.00    1007.40
7    2008.06.05 00:05    sell    4    0.60    1.5425    1.5445    1.5165    
8    2008.06.05 01:39    s/l    4    0.60    1.5445    1.5445    1.5165    -120.00    887.40
9    2008.06.06 00:00    buy    5    0.50    1.5584    1.5564    1.5844    
10    2008.06.09 09:39    t/p    5    0.50    1.5844    1.5564    1.5844    1293.00    2180.40
11    2008.06.10 00:00    sell    6    1.30    1.5640    1.5660    1.5380    
12    2008.06.12 14:34    t/p    6    1.30    1.5380    1.5660    1.5380    3385.20    5565.60
13    2008.06.13 00:00    buy    7    3.30    1.5454    1.5434    1.5714    
14    2008.06.13 02:20    s/l    7    3.30    1.5434    1.5434    1.5714    -660.00    4905.60
15    2008.06.15 22:10    sell    8    2.90    1.5417    1.5437    1.5157    
16    2008.06.16 10:47    s/l    8    2.90    1.5437    1.5437    1.5157    -577.10    4328.50
17    2008.06.17 00:02    buy    9    2.60    1.5470    1.5450    1.5730    
18    2008.06.26 13:44    t/p    9    2.60    1.5730    1.5450    1.5730    6359.60    10688.10
19    2008.06.27 00:00    sell    10    6.40    1.5751    1.5771    1.5491    
20    2008.06.27 10:39    s/l    10    6.40    1.5771    1.5771    1.5491    -1280.00    9408.10

E come tutto è iniziato bene...

 

Ma se il drawdown è > 50% ... Non so chi rischierebbe di investire. Sembra che avremmo dovuto usarlo così com'è. Ancora un altro esempio del fatto che il nuovo è nemico del meglio...

 

Dopo aver sbattuto la testa (ostinatamente) contro il tavolo, la funzione di calcolo della dimensione del lotto assume la seguente forma

double getLots() {
   if (MaximumRisk>0) 
      {
       double minlot = MarketInfo(Symbol(),MODE_MINLOT);
       double maxlot = MarketInfo(Symbol(),MODE_MAXLOT);       

       double lot = NormalizeDouble(AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/MaximumRisk,1);
       lot=MathMax(MathMin(lot,maxlot),minlot);
      }
   else lot=Lots;
   return(lot); 
}

dove MassimoRischio - parte di capitale (calcolato come 1/MassimoRischio) che può essere usato quando si apre una posizione.

La necessità di dividere e moltiplicare per gradi è sparita, perché questa funzione non scarta le parti frazionarie, ma le arrotonda secondo le regole della matematica. Ora il lotto è calcolato con il valore del margine, il che diminuisce il rischio. La linea "lot=MathMax(MathMin(lot,maxlot),minlot);" cercherà di aprire comunque una posizione della dimensione minima del lotto (di solito 0,1), il che aumenterà il rischio dell'operazione. Potresti volerlo disabilitare del tutto. Di nuovo, apparirà solo con una deposizione insufficiente.

Ancora una volta voglio ringraziare Viktor per il codice sorgente fornito...

 
Loring писал (а) >>

Dopo aver sbattuto la testa (ostinatamente) contro il tavolo, la funzione di calcolo della dimensione del lotto assume la seguente forma

Dove MassimoRischio - parte di capitale (calcolato come 1/MassimoRischio) che può essere usato per aprire una posizione.

Non c'è bisogno di dividere o moltiplicare per gradi, perché questa funzione non taglia le parti frazionarie, ma le arrotonda secondo le regole matematiche.

Ricordate, non tutte le società di brokeraggio hanno un incremento del lotto di 0,1, ci sono altre varianti.

 
Mi sento un po' inquietante... Sembra giusto, ma c'è qualcosa che non va. Allora davvero /MaximumRisk/step,0)*step... Ho dimenticato che in alcune società di intermediazione il passo può essere 0,001. È bello avere qualcuno che corregga...
 

Allora deve essere così... (non sono sicuro dello '0' nella funzione di arrotondamento)

double getLots() {
   if (MaximumRisk>0) 
      {
       double minlot = MarketInfo(Symbol(),MODE_MINLOT);
       double maxlot = MarketInfo(Symbol(),MODE_MAXLOT);       
       double step   = MarketInfo(Symbol(),MODE_LOTSTEP);       

       double lot = NormalizeDouble(AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/MaximumRisk/step,0)*step;
       lot=MathMax(MathMin(lot,maxlot),minlot);
      }
   else lot=Lots;
   return(lot); 
}
 

Non capisco perché l'apertura della posizione sia stata messa in una funzione separata. Un comando può essere eseguito localmente... Oppure è un frammento di qualcosa di più grande... ТР e SL sono trasmessi non nella sequenza in cui sono in OrderSend... Grazie al cielo si ricevono come si trasmettono. Certamente non è un grosso problema, ma ....