Wie man einen Berater richtig optimiert - Seite 6

 

Die erste auf x ist SL und die auf y ist TP.

Ich denke, die linke Seite ist die positive Zone und die rechte Seite ist ein Zufallstreffer... Nun SL auf Euro Pfund kann nicht 190 oder mehr für M5 Zeitraum sein...

 
Loring писал (а) >>
und dementsprechend.

Vorsicht, übertreiben Sie es nicht mit dem Martingal. Die EAs waren maßgeschneidert, ich habe sie nur gewarnt, dass ich sie veröffentlichen würde. Ich mag diese Technologie nicht. Es ist sehr riskant. Sie können es verwenden, wenn die Wahrscheinlichkeit eines guten Ergebnisses recht hoch ist. Das Einzige, was noch zu tun bleibt, ist, einen solchen Mechanismus zu schaffen.

 

Aber ein kleiner Test ist möglich .... Das Ergebnis entspricht übrigens weitgehend meinem Algorithmus. Ich werde mir also nicht die Haare raufen... Aber ich möchte sie kennenlernen.

 
Ja, nun... Wie Zverev zu sagen pflegte: "Der Stern steht unter Schock"... Der Algorithmus verhält sich seltsam, oder wie er gerne genannt wird... Dann schaltet man die Reinvestition ein.
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

Und wie gut das alles anfing...

 

Aber wenn der Drawdown > 50% ist ... Ich wüsste nicht, wer das Risiko einer Investition eingehen würde. Es sieht so aus, als hätten wir es so verwenden sollen, wie es ist. Wieder ein Beispiel dafür, dass das Neue der Feind des Besten ist...

 

Nachdem Sie Ihren Kopf (hartnäckig) gegen den Tisch geschlagen haben, sieht die Funktion zur Berechnung der Losgröße folgendermaßen aus

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); 
}

wobei MaximumRisk - Teil des Kapitals (berechnet als 1/MaximumRisk), der bei der Eröffnung einer Position eingesetzt werden kann.

Die Notwendigkeit, schrittweise zu dividieren und zu multiplizieren, entfällt, denn diese Funktion verwirft keine Nachkommastellen, sondern rundet sie gemäß den mathematischen Regeln ab. Jetzt wird das Lot mit dem Margenwert berechnet, was das Risiko verringert. Die Zeile "lot=MathMax(MathMin(lot,maxlot),minlot);" versucht ohnehin, eine Position mit der minimalen Lotgröße (normalerweise 0,1) zu eröffnen, was das Risiko der Operation erhöht. Vielleicht möchten Sie sie ganz deaktivieren. Auch hier erscheint sie nur bei unzureichender Einzahlung.

Ich möchte mich noch einmal bei Viktor für den zur Verfügung gestellten Quellcode bedanken...

 
Loring писал (а) >>

Nachdem Sie Ihren Kopf (hartnäckig) gegen den Tisch geschlagen haben, sieht die Funktion zur Berechnung der Losgröße folgendermaßen aus

Wobei MaximumRisk - Teil des Eigenkapitals (berechnet als 1/MaximumRisk), der für die Eröffnung einer Position verwendet werden kann.

Es ist nicht nötig, schrittweise zu teilen oder zu multiplizieren, denn diese Funktion schneidet keine Nachkommastellen ab, sondern rundet sie nach mathematischen Regeln ab.

Denken Sie daran, dass nicht alle Maklerunternehmen eine Losgröße von 0,1 haben, es gibt auch andere Varianten.

 
Ich fühle mich ein bisschen unheimlich... Scheint richtig zu sein, aber etwas stimmt nicht. Dann wirklich /MaximumRisk/Schritt,0)*Schritt... Ich habe vergessen, dass bei einigen Maklerunternehmen die Stufe 0,001 sein kann. Es ist schön, jemanden zu haben, der einen korrigiert...
 

Dann muss es so sein... (bin mir nicht sicher wegen der '0' in der Rundungsfunktion)

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); 
}
 

Ich verstehe nicht, warum die Eröffnung der Stelle in einer separaten Funktion untergebracht wurde. Ein Befehl kann lokal ausgeführt werden... Oder es ist ein Teil von etwas Größerem... ТР und SL werden nicht in der Reihenfolge übermittelt, in der sie in OrderSend... stehen. Zum Glück werden sie so empfangen, wie sie gesendet werden. Sicherlich keine große Sache, aber ....