구매 중지 판매 중지 Grid Expert Advisor를 클래스로 - 페이지 4

 
Vladimir Karputov :

35단계 확장 합계의 경우:

Direction_of_trades_EURUSD_35

여기에서 보인다.

  • 모든 경우의 거의 50%가 연속 거래의 길이가 "1"인 경우입니다. 즉, 다음과 같은 상황이 있습니다. 매수를 연 다음 포지션을 취소했습니다(즉, 손실로 매수를 청산하고 매도를 열었습니다) 또는 이 상황: 매도를 연 다음 포지션을 취소했습니다(즉, 손실로 청산하고 매도를 열었습니다. 구입하다). 따라서 연속 거래의 길이가 "1"인 상황은 보장 된 손실입니다.
  • 연속 거래의 길이가 "2"인 모든 경우의 약 25%, 매수의 예: 매수를 열고 또 다른 매수를 열고 포지션을 반전했습니다(즉, 두 개의 매수를 닫고 매도를 열었습니다. 결과적으로 그들은 0과 같은 손실을 얻었습니다).

나는 이러한 가장 많은 범주(연속 거래의 길이가 "1" 및 "2"임)가 Stop 보류 주문 배치 전략을 조정하기 위해 더 자세히 고려되어야 한다고 생각합니다.


피라미드의 아이디어를 확인합시다 (이전 방향으로 위치를 여는 경우).

1. 로트를 기하급수적으로 늘리는 옵션

기하학적 진행 - 일련의 숫자 b1, b2, b3, ... (진행의 구성원), 두 번째부터 시작하는 각 후속 숫자는 특정 숫자 q 를 곱하여 이전 숫자에서 얻습니다. 진행의 분모), 여기서 b1!=0, q !=0: b1, b2=b1*q, b3=b2*q .

2. 산술 진행에서 로트를 늘리는 옵션

산술 진행(대수학) - 일련의 숫자(진행의 구성원)로, 두 번째부터 시작하는 각 숫자는 상수 d (단계 또는 진행의 차)를 추가하여 이전 숫자에서 구합니다. 그것에.

 

두 가지 유형의 회귀가 도입되면서 계산된 로트 크기를 확인해야 합니다. 이를 위해 LotCheck 기능이 사용됩니다. 스크립트에서 이 함수를 사용하는 예:

 //+------------------------------------------------------------------+
//|                                                     LotCheck.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.000"
#property description "Checking the volume of the lot"
#property script_show_inputs
//---
input double start_lot  = 0.85 ;
input double step_lot   = 0.354 ;
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   m_symbol.Name( Symbol ());
   m_symbol.Refresh();
//---
   Comment ( "" );
   Comment ( StringFormat ( "Symbol %s. Lots Min: %.2f, Lots Max: %.2f, Lots Step %.2f" ,
           m_symbol.Name(),m_symbol.LotsMin(),m_symbol.LotsMax(),m_symbol.LotsStep()));
//---
   double ext_start_lot = start_lot;
   double ext_step_lot  = step_lot;
//---
   for ( int i= 0 ;i< 21 ;i++)
     {
       Comment ( ChartGetString ( 0 , CHART_COMMENT ), "\n" ,
               "Input lot " ,ext_start_lot, ", lot check: " , DoubleToString (LotCheck(ext_start_lot), 2 ));
      ext_start_lot+=ext_step_lot;
     }
  }
//+------------------------------------------------------------------+
//| Lot Check                                                        |
//+------------------------------------------------------------------+
double LotCheck( double lots)
  {
//--- calculate maximum volume
   double volume= NormalizeDouble (lots, 2 );
   double stepvol=m_symbol.LotsStep();
   if (stepvol> 0.0 )
      volume=stepvol* MathFloor (volume/stepvol);
//---
   double minvol=m_symbol.LotsMin();
   if (volume<minvol)
      volume= 0.0 ;
//---
   double maxvol=m_symbol.LotsMax();
   if (volume>maxvol)
      volume=maxvol;
   return (volume);
  }
//+------------------------------------------------------------------+

터미널 로그가 막히지 않도록 전체 출력이 그래프로 구성됩니다.

로트체크

파일:
LotCheck.mq5  5 kb
 

기하 및 산수 직업이 고문 클래스에 추가되었습니다. 기하학적 진행을 위해 구현된 로트 계산(지금까지).

 //+------------------------------------------------------------------+
//| 1.001:                                                           |
//|   when starting, sets Buy stop and sell stop                     |
//| 1.002:                                                           |
//|   OnTradeTransaction: if DEAL_ENTRY_IN delete all pending orders,|
//|   and, sets Buy stop and sell stop                               |
//| 1.003:                                                           |
//|   OnTradeTransaction: DEAL_ENTRY_IN                              |
//|      DEAL_TYPE_BUY => ClosePositions(POSITION_TYPE_SELL)         |
//|      DEAL_TYPE_SELL => ClosePositions(POSITION_TYPE_BUY)         |
//|   PlacesXXXX:                                                    |
//|      "RefreshRates()" is now inside the "PlacesXXXX"             |
//|   OnTradeTransaction:                                            |
//|      a "while" loop for "PlacesXXXX"                             |
//| 1.004:                                                           |
//|   add OnTester and save csv file                                 |
//| 1.005:                                                           |
//|   add Geometric and arithmetic progression                       |
//|      only a geometric progression is realized                    |
//+------------------------------------------------------------------+

ds

 

일반 로트 및 기하학적 진행과 거래( EURUSD 기호 , 35단계) 비교:

Expert Advisor 매수 정지 매도 정지 Grid as a class: regular lot

쌀. 1. Expert Advisor 매수 스톱 매도 스톱 Grid as a class: regular lot


Expert Advisor 매수 스톱 매도 스톱 Grid as a class: lot 기하급수적으로

그림 2. Expert Advisor 매수 스톱 매도 스톱 Grid as a class: lot 기하급수적으로


Expert Advisor 매수 스톱 매도 스톱 Grid as a class: 많은 산술 진행

쌀. 3. Expert Advisor 매수 스톱 매도 스톱 Grid as a class: lot of arithmetic evolution


"한 방향으로 포지션을 취할 때 기하학적 진행 또는 산술적 진행으로 로트를 늘리는 것은 일정한 로트로 거래하는 것보다 더 나쁜 것으로 판명되었습니다."

 

스토리지에서 데이터를 업데이트하려고 할 때 다음과 같이 씁니다.

2017.10.03 12:59:10.146 저장소에서 http 데이터를 읽지 못했습니다(storage.mql5.com:443 읽기에 실패했습니다[12152]).

일반적으로 스토리지에 대한 작업이 나아지지 않고 있습니다. 내가 뭔가를 잘못하고 있습니다...
 
George Merts :

스토리지에서 데이터를 업데이트하려고 할 때 다음과 같이 씁니다.

2017.10.03 12:59:10.146 저장소에서 http 데이터를 읽지 못했습니다(storage.mql5.com:443 읽기에 실패했습니다[12152]).

일반적으로 스토리지에 대한 작업이 나아지지 않고 있습니다. 내가 뭔가를 잘못하고 있습니다...

Skype로 이동한 다음 여기에 스토리지 문제에 대한 솔루션을 게시하겠습니다...

 
Vladimir Karputov :

Skype로 이동한 다음 여기에 스토리지 문제에 대한 솔루션을 게시하겠습니다...

괜찮아요. 비공개로 썼습니다.

 

그래서.

Windows7 x64가 있고 사용자 계정 제어가 비활성화되어 있습니다. 메타에디터에 들어갈 때마다 매번 볼트에 접속해야 합니다.


 

블라디미르, 저를 프로젝트 에 추가해주세요. 감사해요

사유: