어드바이저를 최적화하는 방법 - 페이지 6

 

첫 번째 x - SL 및 y - TP.

왼쪽은 양수 값의 영역이고 오른쪽은 우발적 인 타격이라고 생각합니다 ... 음, 유로 달러의 SL은 M5 기간 동안 190 이상과 같을 수 없습니다 ...

 
Loring писал (а) >> 를 썼습니다.
그리고 그에 따라

봐, 마틴게일에 휘둘리지 마. 커스텀 어드바이저가 있었는데, 그냥 게시하겠다고 경고했습니다. 그리고 저는 이 기술이 마음에 들지 않습니다. 매우 위험합니다. 성공적인 결과의 확률이 상당히 높을 때 사용할 수 있습니다. 그러한 메커니즘을 만드는 것만 남아 있습니다.

 

하지만 당신은 조금 테스트 할 수 있습니다 ... 그건 그렇고, 결과는 내 알고리즘에 가깝습니다. 그래서 나는 머리를 찢지 않을 것입니다 ... 그러나 나는 친해지고 싶습니다.

 
예 ... Zverev가 "The Star is in shock"이라고 말했듯이 ... 알고리즘이 실제로 이상하거나 즐겁게 원하는대로 작동합니다 ... 재투자가 켜진 때입니다.
 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

얼마나 잘 시작되었는지...

 

하지만 드로다운이 50% 이상이라면... 글쎄요, 누가 감히 투자할 것인지 모르겠습니다. 그대로 사용하면 될 것 같습니다. 새로운 것이 더 나은 것의 적이라는 또 다른 예...

 

테이블에 머리를 두드린 후 로트 크기 계산 기능은 다음과 같은 형식을 취했습니다.

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

여기서 MaximumRisk는 포지션을 열 때 사용할 수 있는 자본의 일부(1/MaximumRisk로 계산됨)입니다.

단계별로 나누고 곱할 필요가 없어졌습니다. 왜냐하면 f-i는 분수 부분을 버리지 않고 수학 규칙에 따라 반올림합니다. 이제 담보 가치를 고려하여 로트가 계산되어 위험이 다소 감소합니다. 마진이 선언된 위험 수준 아래로 감소하면 "lot= MathMax (MathMin(lot,maxlot),minlot)" 줄도 고려해야 합니다. 여전히 최소 로트 크기(보통 0.1)로 포지션을 개설하려고 하므로 위험한 작업이 증가합니다. 완전히 끄는 것이 가장 좋습니다. 다시 말하지만, 이것은 불충분한 depazit에서만 나타날 것입니다 ...

다시 한 번, 원본 텍스트를 제공한 Victor에게 감사의 말을 전합니다...

 
Loring писал (а) >> 를 썼습니다.

테이블에 머리를 두드린 후 로트 크기 계산 기능은 다음과 같은 형식을 취했습니다.

여기서 MaximumRisk는 포지션을 열 때 사용할 수 있는 자본의 일부(1/MaximumRisk로 계산됨)입니다.

단계별로 나누고 곱할 필요가 없어졌습니다. 왜냐하면 f-i는 분수 부분을 버리지 않고 수학 규칙에 따라 반올림합니다.

모든 DC에서 로트 변경 단계가 0.1이 아니라 다른 옵션이 있다는 것을 잊지 마십시오.

 
그리고 고양이가 긁는 것이 느껴집니다 ... 맞는 것 같지만 뭔가 잘못되었습니다. 그렇다면 실제로 /MaximumRisk/step,0)*step ... 일부 DC에서는 단계가 0.001도 되는 것을 잊었습니다. 고쳐줄 사람이 있다는 건 좋은데...
 

그렇다면 아마도 ... (반올림 함수의 "0"에 대해 확실하지 않음)

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

왜 별도의 기능 으로 포지션을 열게 했는지 이해가 되지 않았다. 하나의 명령을 제자리에서 실행할 수 있습니다. 아니면 더 큰 것에서 잘라낸 것인지... TP와 SL은 OrderSend의 순서대로 전송되지 않습니다... 다행히 전송된 대로 수신됩니다. 물론 별거 아니지만....