어드바이저를 무작위로 모으는 방법 - 페이지 45

 
어서 해봐요
 

지표 테스트를 위한 Simple Expert Advisor

표시기의 이름을 입력하십시오

 input string short_name       = "LeM 2 Macd" ; // name indicator

잘못된 방향으로 위치가 열리면 반대 방향으로 전환합니다.

 input bool    Revers           = false ;         // Revers

모든 표시기가 작동하는 것은 아닙니다. 일반적으로 경보가 작동합니다.

모든 전문가 설정

 //---
input double InpLots          = 0.01 ;         // Lots
input int     InpTrailingStop  = 0 ;             // Trailing Stop Level (in pips)
input bool    Revers           = false ;         // Revers
input string short_name       = "LeM 2 Macd" ; // name indicator
//---

스냅샷.PNG

파일:
 
Alexsandr San :

지표 테스트를 위한 Simple Expert Advisor

표시기의 이름을 입력하십시오

잘못된 방향으로 위치가 열리면 반대 방향으로 전환합니다.

모든 표시기가 작동하는 것은 아닙니다. 일반적으로 경보가 작동합니다.

모든 전문가 설정

표시기가 다른 폴더에 있는 경우

다음과 같이 작성하십시오. - Examples\\ZigzagColor

예

지그재그

 

표시기( Heiken_Ashi.mq5 )에서 무언가를 생각해내려고 합니다.

- 나왔을 때 뮤지컬 (회색이 파란색보다 높을 때 한 소리, 낮을 때 다른 소리)

EURSGDM1

파일:
03.mq5  12 kb
 
Alexsandr San :

표시기( Heiken_Ashi.mq5 )에서 무언가를 생각해내려고 합니다.

- 나왔을 때 뮤지컬 (회색이 파란색보다 높을 때 한 소리, 낮을 때 다른 소리)


방법을 모르겠어, 내가 할 수 없어, 어떻게 라인을 다른 라인과 교차시키고, 신호를 트리거하고 닥쳐?

그렇게 했지만 신호는 모든 막대에서 트리거됩니다.

 //--- we work only at the time of the birth of new bar
   datetime time_0= iTime ( Symbol (), Period (), 0 );
   if (time_0==m_prev_bars)
       return (rates_total);
   m_prev_bars=time_0;
//---
   int find_buy_level= ObjectFind ( 0 ,InpFont2);
   int find_sell_level= ObjectFind ( 0 ,InpFont1);

   if (find_buy_level== 0 )
     {
       double price= ObjectGetDouble ( 0 ,InpFont2, OBJPROP_PRICE );
       if ( ObjectGetDouble ( 0 ,InpFont1, OBJPROP_PRICE )<price)
        {
         PlaySound ( "tick.wav" );
         //---
         return (rates_total);
        }
     }
   if (find_sell_level== 0 )
     {
       double price= ObjectGetDouble ( 0 ,InpFont2, OBJPROP_PRICE );
       if ( ObjectGetDouble ( 0 ,InpFont1, OBJPROP_PRICE )>price)
        {
         PlaySound ( "stops.wav" );
         //---
         return (rates_total);
        }
     }
//--- done
   return (rates_total);
  }
 
흥미로운 지표를 얻습니다. 그는 어떻게 일합니까?
 
Alex potapenko :
흥미로운 지표를 얻습니다. 그는 어떻게 일합니까?

나는 아직 모른다. 나는 프로그래머가 아니다. 그래서 찔러서, 나는 라인이 다른 라인과 교차하고 신호가 작동하기를 원한다.

- 그래서 일어난 것 같지만 - 그렇지 않습니다.

 

Heiken_Ashi 표시기의 신호입니다. ---- Heiken2_Ashi 표시기를 얻었습니다.

음, 지표를 확인하는 전문가

AUDCADH4

파일:
 
Alexsandr San :

Heiken_Ashi 표시기의 신호입니다. ---- Heiken2_Ashi 표시기를 얻었습니다.

음, 지표를 확인하는 전문가


Heiken2_Ashi 표시기에서 필터를 추가할 수 있습니다.

 //---- получение хендла индикатора RSI
   RSI_Handle= iRSI ( NULL , 0 , int (ParmMult* 9 ), PRICE_CLOSE );
   if (RSI_Handle== INVALID_HANDLE )
       Print ( " Не удалось получить хендл индикатора iRSI" );
//---- получение хендла индикатора Stochastic
   STO_Handle= iStochastic ( NULL , 0 , int ( 21 *ParmMult), int ( 3 *ParmMult), int ( 2 *ParmMult), MODE_LWMA , STO_LOWHIGH );
   if (STO_Handle== INVALID_HANDLE )
       Print ( " Не удалось получить хендл индикатора iStochastic" );
//---- получение хендла индикатора MACD
   MACD_Handle= iMACD ( NULL , 0 , int ( 10 *ParmMult), int ( 15 *ParmMult), int ( 13 *ParmMult), PRICE_CLOSE );
   if (MACD_Handle== INVALID_HANDLE )
       Print ( " Не удалось получить хендл индикатора iMACD" );
//---- получение хендла индикатора hHeiken_Ashi
   hHeiken_Ashi= iCustom ( NULL , 0 , "Examples\\Heiken_Ashi" );
   if (hHeiken_Ashi== INVALID_HANDLE )
       Print ( " Не удалось получить хендл индикатора hHeiken_Ashi" );

여기에 추가 - 이 필터

      RsiDn=RSI[bar]<=x2;
      StochDn=STO[bar]<STOS[bar];
      MacdDn=MACD[bar]<MACDS[bar];
      haClDn=haOpen[bar]>haClose[bar];

      RsiUp=RSI[bar]>=x1;
      StochUp=STO[bar]>STOS[bar];
      MacdUp=MACD[bar]>MACDS[bar];
      haOpUp=haOpen[bar]<haClose[bar];

여기

       if (haClDn)
         p = 1 ;
       if (haOpUp)
         p = 2 ;
       if (haClDn && (p== 1 || p== 0 ))
        {
         if (OldTrend> 0 )
            SellBuffer[bar]=high[bar];
         if (bar!= 0 )
            OldTrend=- 1 ;
        }
       if (haOpUp && (p== 2 || p== 0 ))
        {
         if (OldTrend< 0 )
            BuyBuffer[bar]=low[bar];
         if (bar!= 0 )
            OldTrend=+ 1 ;
        }
     }

이와 같이

       if (StochDn && RsiDn && MacdDn && haClDn)
         p = 1 ;
       if (StochUp && RsiUp && MacdUp && haOpUp)
         p = 2 ;
       if (StochDn && RsiDn && MacdDn && haClDn && (p== 1 || p== 0 ))
        {
         if (OldTrend> 0 )
            SellBuffer[bar]=high[bar];
         if (bar!= 0 )
            OldTrend=- 1 ;
        }
       if (StochUp && RsiUp && MacdUp && haOpUp && (p== 2 || p== 0 ))
        {
         if (OldTrend< 0 )
            BuyBuffer[bar]=low[bar];
         if (bar!= 0 )
            OldTrend=+ 1 ;
        }
     }
//----
   return (rates_total);
  }
 

표시기, 위치를 여는 것이 더 나을 때 무언가가 있습니다.

두 개의 수평선 사이에서 점의 색상 방향으로 열 수 있습니다.

스냅 사진

파일:
LN_1.mq5  27 kb