Forex 거래의 "헤징" - 왜 할까요? - 페이지 7

 
//+------------------------------------------------------------------+
//|                                          Sonic the hedge hog.mq4 |
//|      Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//|             The code should be used for educational purpose only.|
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

datetime time;
int TrailingStop= 100 ;
double Lots= 0.01 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   time= iTime ( _Symbol , PERIOD_D1 , 0 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   exit();
   enter();
  }
//+------------------------------------------------------------------+
//| enter
//+------------------------------------------------------------------+
void enter()
  {
//--- new bar ?
   if (time!= iTime ( _Symbol , PERIOD_D1 , 0 ))
     {
       int ticket_buy=- 1 ;
        {
         while (ticket_buy< 0 )
           {
            ticket_buy= OrderSend ( _Symbol , OP_BUY ,Lots, Ask , 3 , NULL , NormalizeDouble ( Bid + 100 * Point , Digits ), "Sonic" , 1234 , 0 , clrGreen );
           }
        }
       int ticket_sell=- 1 ;
        {
         while (ticket_sell< 0 )
           {
            ticket_sell= OrderSend ( _Symbol , OP_SELL ,Lots, Bid , 3 , NULL , NormalizeDouble ( Ask - 100 * Point , Digits ), "Sonic" , 1234 , 0 , clrRed );
           }
        }
       if (ticket_buy> 0 && ticket_sell> 0 )
        {
         time= iTime ( _Symbol , PERIOD_D1 , 0 );
        }
     }
  }
//+------------------------------------------------------------------+
//| exit
//+------------------------------------------------------------------+
void exit()
  {
//--- it is important to enter the market correctly, but it is more important to exit it correctly...   
   for ( int cnt= OrdersTotal (); cnt>= 0 ; cnt--)
     {
       if ( OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES )== true )
        {
         if ( TimeDay ( OrderOpenTime ())!= TimeDay (time))
           {
             bool close= OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 3 , clrBlue );
              {
               if (close== 0 )
                 {
                   Print ( "OrderCloseError" + IntegerToString ( OrderTicket ()));
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

꽤 직설적 인.

나는 작년에 그것을 실행합니다.

그래서 나는 동일한 결과를 기대하거나 일부 사람들이 말하는 것처럼 다른 기술에서 더 나은 결과를 기대합니다.

나는 이것에서 나오는 것을 받아들이는 데 아무런 문제가 없을 것이며, 나는 잘못된 진실을 밀어붙이려 하지 않습니다.

내가 필요로 하고 원하는 모든 주제 대신에 포럼을 활기차게 유지하고 약간의 경쟁을 유지하려고 합니다.

 
Marco vd Heijden :

꽤 직설적 인.

나는 작년에 그것을 실행합니다.

그래서 나는 동일한 결과를 기대하거나 일부 사람들이 말하는 것처럼 다른 기술에서 더 나은 결과를 기대합니다.

나는 이것에서 나오는 것을 받아들이는 데 아무런 문제가 없을 것이며, 나는 잘못된 진실을 밀어붙이려 하지 않습니다.

내가 필요로 하고 원하는 모든 주제 대신에 포럼을 활기차게 유지하고 약간의 경쟁을 유지하려고 합니다.

하이 마르코,

다음은 헤징 없이 작동하도록 수정된 코드입니다.


	          
 

죄송합니다,

작은 오류.

곧 돌아올 것입니다.

 

헤징을 하지 않는 코드는 다음과 같습니다.

 //+------------------------------------------------------------------+
//|                                          Sonic the hedge hog.mq4 |
//|      Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//|             The code should be used for educational purpose only.|
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, Marco vd Heijden, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

datetime time;
//int TrailingStop=100;
double Lots= 0.01 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   time= iTime ( _Symbol , PERIOD_D1 , 0 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   exit();
   enter();
  }
//+------------------------------------------------------------------+
//| enter
//+------------------------------------------------------------------+
void enter()
  {
   static double BuyAt= 0 ,SellAt= 0 ,BuyTP= 0 ,SellTP= 0 ;

//--- new bar ?
   if (time!= iTime ( _Symbol , PERIOD_D1 , 0 ))
     {
      SellAt= NormalizeDouble ( Bid + 100 * Point , Digits );
      SellTP= NormalizeDouble ( Ask - 100 * Point , Digits );
      BuyAt= NormalizeDouble ( Ask - 100 * Point , Digits );
      BuyTP= NormalizeDouble ( Bid + 100 * Point , Digits );
      time= iTime ( _Symbol , PERIOD_D1 , 0 );
     }

   if (SellAt> 0 && Bid >=SellAt)
     {
       int ticket_sell=- 1 ;
      ticket_sell= OrderSend ( _Symbol , OP_SELL ,Lots, Bid , 3 , NULL ,SellTP, "Sonic" , 1234 , 0 , clrRed );
       if (ticket_sell> 0 )
        {
         BuyAt= 0 ;
         SellAt= 0 ;
        }
     }

   if (BuyAt> 0 && Ask <=BuyAt)
     {
       int ticket_buy=- 1 ;
      ticket_buy= OrderSend ( _Symbol , OP_BUY ,Lots, Ask , 3 , NULL ,BuyTP, "Sonic" , 1234 , 0 , clrGreen );
       if (ticket_buy> 0 )
        {
         BuyAt= 0 ;
         SellAt= 0 ;
        }
     }
  }
//+------------------------------------------------------------------+
//| exit
//+------------------------------------------------------------------+
void exit()
  {
//--- it is important to enter the market correctly, but it is more important to exit it correctly...   
   for ( int cnt= OrdersTotal ()- 1 ; cnt>= 0 ; cnt--)
       //+------------------------------------------------------------------+
       //|                                                                  |
       //+------------------------------------------------------------------+
     {
       if ( OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES )== true )
        {
         if ( TimeDay ( OrderOpenTime ())!= TimeDay (time))
           {
             bool close= OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 3 , clrBlue );
              {
               if (close== false )
                 {
                   Print ( "OrderCloseError" + IntegerToString ( OrderTicket ()));
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
 

좋아요, 감사합니다. 컴파일했고 결과는 다음과 같습니다.


 
Marco vd Heijden :

좋아요, 감사합니다. 컴파일했고 결과는 다음과 같습니다.


모든 틱에서 시도하십시오. 공개 가격 은 특정 수준에서 거래가 입력되는 이러한 유형의 거래를 테스트하는 데 적합하지 않습니다.

물론 동일한 데이터에 대해 귀하와 비교하여 테스트하십시오.

 
좋아, 그들은 모든 틱 을 실행할 때 둘 다 매우 비슷하게 보입니다.
 
Marco vd Heijden :
좋아, 그들은 모든 틱 을 실행할 때 둘 다 매우 비슷하게 보입니다.


그래서 ... 이 주제에서 언급한 소위 헤징 기법을 적용하지 않고 포럼의 존경받는 코더들은 Marco가 제안한 전략이 약간의 추가 재정적 이점과 함께 다른 방식으로 구현될 수도 있음을 보여주었습니다.

실제로 "임의로 선택한" 전략은 그렇게 보여질 수 있습니다... 그리고 이것은 Keith의 첫 번째 게시물에서 "Forex의 "헤징"이 비생산적이고 무의미하다는 제 의견이 아니라 사실임을 보편적으로 증명합니다. ."


눈치채셨나요?

이 결과는 "다수는 필요 없이 정립되어서는 안 된다" 또는 "개체는 필요 이상으로 증식되어서는 안 된다"라는 오컴의 면도날(Occam's Razor)과 일치한다.

따라서 완벽함을 위해 단순하게 ... 또는 이 경우 실질적인 이점 없이 추가 비용과 불필요한 위험으로부터 자신을 절약하기 위해 단순해야 합니다.


행복한 전략 설계)

 

뚱뚱한 여자가 노래를 부를 때까지 쇼는 끝난 것이 아닙니다.

계속 지켜봐 주세요.

 
Marco vd Heijden :
좋아, 그들은 모든 틱 을 실행할 때 둘 다 매우 비슷하게 보입니다.

내 버전이 약간의 이익 증가를 가져온 것을 보지 못했습니까?