[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 330

 

얘들아, 말해봐 ... 여기에 시장 진입 조건이 계산되는 코드 섹션이 있습니다. 최적화 중에 얻은 시간 프레임의 주어진 값에 대한 WHY

 extern int s_signal_period= 7 ;
extern int t_trend_period = 7 ; // 1-M1, 2-M5, 3-M15, 4-M30, 5-H1, 6-H4, 7-D1, 8-W.

저것들. TF = 매일, H4 기간에 테스트할 때 전략 테스터에서 4시간 양초가 열릴 때 시장에 진입합니다??? 결국, 일일 거래가 시작될 때만 입구가 있어야 합니다. 저는 H4 및 D1에 대한 코드 섹션과 테스트 보고서를 제공합니다.

xtern string A4 = "Таймфрейм и параметры технических индикаторов" ;
extern int s_signal_period= 7 ;
extern int t_trend_period =7;
...
static datetime prevtime = 0 ;       // по ценам открытия

...
int start()
{
   if (Time[ 0 ] == prevtime)   return ( 0 );   //ждем нового бара
   prevtime = Time[ 0 ];                   //если появился новый бар , включаемся
   
   ...                     
//---------------------------------------------В ЛОНГ-------------------------------------------------------------------------      

       if (((type_op()==OP_BUY) || (Buy_signal==true && Sell_signal==false)) && (orderCount== 0 || orderCount < 10 ) && Period_MA_Fast<Period_MA_Slow && delta_fma()> 0 && delta_sma()> 0 &&   
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 1 ) > iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) && //идентификация впадины 
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) > iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ) && //с последующим
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 4 ) > iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ))   //ростом
            
           WmOrderSend( Symbol (), OP_BUY, Lots_New, Ask,Bid-StopLoss* Point , Bid + TakeProfit* Point , "2MA+Momentum" , magic);


//---------------------------------------------В ШОРТ--------------------------------------------------------------------------     
     
       if (((type_op()==OP_SELL) || (Buy_signal==false && Sell_signal==true)) && (orderCount== 0 || orderCount < 10 ) && Period_MA_Fast<Period_MA_Slow  && delta_fma()< 0 && delta_sma()< 0 &&
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 1 ) < iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) && //вершина 
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 2 ) < iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ) && //с последующим 
           iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 4 ) < iMomentum ( Symbol (),signal_period,Period_M, PRICE_CLOSE , 3 ))   //падением
      
          
           WmOrderSend( Symbol (), OP_SELL, Lots_New, Bid, Ask+StopLoss* Point , Ask - TakeProfit* Point , "2MA+Momentum" , magic); 
      
         
 ...          
} //------------------------------------------Конец Старт-----------------------------------------------------

double delta_fma()
  {
     int signal_period= GetPeriod(s_signal_period);
     return ( iMA ( Symbol (),signal_period,Period_MA_Fast, 0 , MODE_EMA , PRICE_CLOSE , 1 )-
           iMA ( Symbol (),signal_period,Period_MA_Fast, 0 , MODE_EMA , PRICE_CLOSE , 3 ));
  }

double delta_sma()
  {
     int trend_period = GetPeriod(t_trend_period); 
     return ( iMA ( Symbol (),trend_period,Period_MA_Slow, 0 , MODE_EMA , PRICE_CLOSE , 1 )-
           iMA ( Symbol (),trend_period,Period_MA_Slow, 0 , MODE_EMA , PRICE_CLOSE , 3 ));
  }

//для оптимизации по всем периодам по всем периодам
int GetPeriod( int period)
{ int periodres;
 switch (period)
  {
   case 1 : periodres= 1 ; break ;     //M1
   case 2 : periodres= 5 ; break ;     //M5
   case 3 : periodres= 15 ; break ;     //M15
   case 4 : periodres= 30 ; break ;     //M30
   case 5 : periodres= 60 ; break ;     //H1
   case 6 : periodres= 240 ; break ;   //H4
   case 7 : periodres= 1440 ; break ;   //D1
   case 8 : periodres= 10080 ; break ; //W
   default : periodres= 1 ; break ;
  }
return (periodres);
} 

보고서. H4에서 테스트할 때 - 4시간마다 시장에 진입하지만 거래 조건이 충족되면 extern int s_signal_period= 7 ;
외부 int t_trend_period = 7;

D1 - D1에 대한 테스트 - 동일한 extern int s_signal_period= 7 로 D1 개장 시 시장 진입 ;
외부 int t_trend_period = 7;

이론상으로는 그래야 합니다... 전략 테스터가 H4에서 테스트할 때 H4가 시작될 때 시장에 진입 하지만 매일 양초가 시작될 때 시장에 진입하지 않는 이유는??? , 왜냐하면 s_signal_period= 7 ;
외부 int t_trend_period = 7 ;

이 문제에 대한 팁을 주셔서 감사합니다.

 
Roman. :

얘들아, 말해봐 ... 여기에 시장 진입 조건이 계산되는 코드 섹션이 있습니다. WHY 최적화 중에 얻은 주어진 기간 값

저것들. TF = 매일, H4 기간에 테스트할 때 전략 테스터에서 4시간 양초가 열릴 때 시장에 진입합니다??? 결국, 일일 거래가 시작될 때만 입구가 있어야 합니다. 저는 H4 및 D1에 대한 코드 섹션과 테스트 보고서를 제공합니다.

보고서. H4에서 테스트할 때 - 4시간마다 시장에 진입하지만 거래 조건이 충족되면 extern int s_signal_period= 7 ;
외부 int t_trend_period = 7;

D1 - D1에 대한 테스트 - 동일한 extern int s_signal_period= 7 로 D1 개장 시 시장 진입 ;
외부 int t_trend_period = 7;

이론상으로는 그래야 합니다... 전략 테스터가 H4에서 테스트할 때 H4가 시작될 때 시장에 진입 하지만 매일 양초가 시작될 때 시장에 진입하지 않는 이유는??? , 왜냐하면 s_signal_period= 7 ;
외부 int t_trend_period = 7 ;

이 문제에 대한 팁을 주셔서 감사합니다.


제공된 코드가 응답하기에 충분하지 않습니다.
 
Vinin :

제공된 코드가 응답하기에 충분하지 않습니다.

얼마나 많은 코드가 필요합니까? 시그널 부분이 있는데..
 
Vinin :

제공된 코드가 응답하기에 충분하지 않습니다.

이제 H1에서 테스트됨 - s_signal_period= 7로 매시간 거래를 엽니다.
외부 int t_trend_period = 7 ;
 
Roman. :

이제 H1에서 테스트됨 - s_signal_period= 7로 매시간 거래를 엽니다.
외부 int t_trend_period = 7 ;


signal_period 변수를 전역으로 만들고 init()에서 값을 할당하는 것이 좋습니다.

그리고 새 막대 의 컨트롤을 변경합니다.

   if ( iTime ( Symbol (),signal_period, 0 ) == prevtime)   return ( 0 );   //ждем нового бара
   prevtime = iTime ( Symbol (),signal_period, 0 );                   //если появился новый бар , включаемся
 
Vinin :


signal_period 변수를 전역으로 만들고 init()에서 값을 할당하는 것이 좋습니다.

그리고 새 막대의 컨트롤을 변경합니다.


알겠습니다, 빅터, 감사합니다. 오늘 밤 퇴근 후에 시도해 보겠습니다. 이 스레드에 결과를 게시하겠습니다.
 
무스 주문이 잡혔는지 여부를 프로그래밍 방식으로 찾는 방법을 알려주십시오.
 
CLAIN :
무스 주문이 잡혔는지 여부를 프로그래밍 방식으로 찾는 방법을 알려주십시오.

올바르게 생각하십시오.

검색: 손실 거래 사이트 식별:mql4.com, 손실 거래 사이트 검색:mql4.com

 
CLAIN :
무스 주문이 잡혔는지 여부를 프로그래밍 방식으로 찾는 방법을 알려주십시오.

OrderClosePrice()==OrderStopLoss()인 경우 - 중지 주문 은 손실 주문으로 마감됩니다. 전체 트릭은 그것이 닫힌 이익의 영역에 있습니다. 트레이더가 포지션을 열고 손절매를 설정한 다음 포지션이 이익이 되었을 때 손절매를 플러스 이익 영역으로 옮겼다고 가정해 봅시다. 이익. 가격이 반등하고 주문을 내렸습니다. 즉, 해당 OrderClosePrice()는 실제로 OrderStopLoss()와 같습니다. 명령은 엘크를 잡았습니다. 손실이 아니라 이익을 얻었을 뿐입니다. 그런 상황에서 당신은 무엇을 할 것입니까?
 

안녕하세요!

진입 가격, 손절매 및 보증금 비율에 따라 로트 크기를 계산하는 방법을 알려주십시오. 항목이 1.4500이고 StopLoss가 1.4400이라고 가정해 보겠습니다. 위험은 100핍입니다. 핍 값이 0.1이고 위험이 잔고의 2%인 경우(10,000은 허용됨) 로트 크기는 0.2가 됩니다. MQL을 사용하여 이 공식을 표시할 수 있습니까? 나는 거의 전체 포럼을 검색했지만 비슷한 것을 찾을 수 없었습니다. 로트를 계산하는 완전히 다른 방법이 모든 곳에서 제공됩니다.

고맙습니다.