지표를 무료로 작성해 드립니다 - 페이지 103

 
MakarFX :

오류를 찾는 데 도움

지표에 두 개의 버퍼를 추가했지만 차트에 표시되지 않습니다.

나는 시도했지만 이것은 https://www.mql5.com/ru/code/32179 로 밝혀졌습니다.

Semaphore MAMA
Semaphore MAMA
  • www.mql5.com
Cигнальный Индикатор - при пересечении двух МА
 
SanAlex :

나는 시도했지만 이것은 https://www.mql5.com/ru/code/32179 로 밝혀졌습니다.

MT4용도 있나요?
 
MakarFX :
MT4용도 있나요?

이것은 MT4에서도 작동해야 합니다. 이제 우리가 뭔가를 하는지 확인하겠습니다.

--------------------

나는 그것을 고치려고 노력할 것이다 - MT4에서는 6개의 오류를 준다

스냅샷.PNG

 
SanAlex :

이것은 MT4에서도 작동해야 합니다. 이제 우리가 뭔가를 하는지 확인하겠습니다.

--------------------

나는 그것을 고치려고 노력할 것이다 - MT4에서는 6개의 오류를 준다


당신은 내 코드를 볼 수 있습니다. 그렇지 않으면 내가 그것을 이해하는 것이 더 쉽습니다. 저는 프로그래머가 아닙니다.
 
MakarFX :
당신은 내 코드를 볼 수 있습니다. 그렇지 않으면 내가 그것을 이해하는 것이 더 쉽습니다. 저는 프로그래머가 아닙니다.

귀하의 코드를 구문 분석하려고 시도했지만 두 MA의 MT4 및 MT5 신호 표시기에 대해 어떻게 처리했는지 알 수 없었습니다.

https://www.mql5.com/en/forum/356653#comment_19450441

Индикаторы: Semaphore MAMA
Индикаторы: Semaphore MAMA
  • 2020.11.27
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Индикаторы: Semaphore MAMA
 
MakarFX :

오류를 찾는 데 도움

지표에 두 개의 버퍼를 추가했지만 차트에 표시되지 않습니다.

#property indicator_color3 블랙
#property indicator_color4 블랙

색상을 변경하여 검은색에 검은색으로, 어떻게 든 comme il faut가 아닙니다.

 
MakarFX :
당신은 내 코드를 볼 수 있습니다. 그렇지 않으면 내가 그것을 이해하는 것이 더 쉽습니다. 저는 프로그래머가 아닙니다.

여기 작업 버전이 있습니다. 다른 생각을 하고 있었을 수도 있습니다.

 //+------------------------------------------------------------------+
//|                                                   MTF_Moving.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                             https://www.mql5.com/ru/users/melnik |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com/ru/users/melnik"
#property version    "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_color1 Wheat
#property indicator_color2 LightSeaGreen
#property indicator_color3 Red
#property indicator_color4 Blue
#property indicator_type1 DRAW_ARROW
#property indicator_type2 DRAW_ARROW
#property indicator_type3 DRAW_LINE
#property indicator_type4 DRAW_LINE

double ma_buffer_slow[];
double ma_buffer_fast[];
double ma_buffer_s_01[];
double ma_buffer_s_02[];

//--- input parameters
input int                      PeriodMaSlow   = 21 ;   //Period slow Ma
input int                      PeriodMaFast   = 13 ;   //Pertiod fast Ma
input ENUM_APPLIED_PRICE       PriceMa        = 0 ;   //Applied price
input ENUM_MA_METHOD           MethodMa       = 0 ;   //Method Ma
input ENUM_TIMEFRAMES          Timeframe      = 60 ;   //Timeframe for calculate

ENUM_TIMEFRAMES prd;

int index=- 1 ;
//--- right input parameters flag
bool flag_buy   = false ;
bool flag_sell  = false ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   string short_name;
   IndicatorDigits( Digits + 1 );
   IndicatorBuffers( 4 );
//--- indicator buffers mapping
   SetIndexBuffer ( 2 , ma_buffer_slow, INDICATOR_DATA );
   SetIndexBuffer ( 3 , ma_buffer_fast, INDICATOR_DATA );
   SetIndexBuffer ( 0 , ma_buffer_s_01, INDICATOR_DATA );
   SetIndexBuffer ( 1 , ma_buffer_s_02, INDICATOR_DATA );
//--- setting the indicator to be drawn as a line
   SetIndexStyle( 0 , DRAW_ARROW ,EMPTY, 2 , clrWheat );
   SetIndexArrow( 0 , 72 );
   SetIndexBuffer ( 0 ,ma_buffer_s_01);
   SetIndexStyle( 1 , DRAW_ARROW ,EMPTY, 2 , clrLightSeaGreen );
   SetIndexArrow( 1 , 71 );
   SetIndexBuffer ( 1 ,ma_buffer_s_02);
//--- setting the indicator to be drawn as a line
   SetIndexStyle( 2 , DRAW_LINE ,EMPTY, 2 , clrRed );
   SetIndexBuffer ( 2 ,ma_buffer_slow);
   SetIndexStyle( 3 , DRAW_LINE ,EMPTY, 2 , clrBlue );
   SetIndexBuffer ( 3 ,ma_buffer_fast);
//--- setting a name in the DataWindow window and a label
   short_name= "MTF_Moving" ;
   IndicatorShortName(short_name);
   SetIndexLabel( 0 ,short_name);
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   if ((rates_total-prev_calculated-PeriodMaSlow)<= 0 )
       return ( 0 );
   if ( Period ()>Timeframe)
      prd= PERIOD_CURRENT ;
   if ( Period ()<=Timeframe)
      prd=prd=Timeframe;
   for ( int i=rates_total-prev_calculated-PeriodMaSlow- 1 ; i>= 0 ; i--)
     {
       if (TimeMinute(time[i])== 0 )
         index= iBarShift ( Symbol (), prd, time[i], false );
      ma_buffer_fast[i]= iMA ( Symbol (), prd, PeriodMaFast, 0 , MethodMa, PriceMa, index);
      ma_buffer_slow[i]= iMA ( Symbol (), prd, PeriodMaSlow, 0 , MethodMa, PriceMa, index);
        {
         if (flag_sell== false )
             //--- check for short position (SELL) possibility
             if (ma_buffer_fast[i]>ma_buffer_slow[i])
              {
               ma_buffer_s_02[i]=Low[i];
               flag_buy= false ;
               flag_sell= true ;
              }
         if (flag_buy== false )
             //--- check for long position (BUY) possibility
             if (ma_buffer_fast[i]<ma_buffer_slow[i])
              {
               ma_buffer_s_01[i]=High[i];
               flag_buy= true ;
               flag_sell= false ;
              }
        }
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+

-------------------------------------------------- ------

그리고 표시기의 신호가오고 있습니다

워크태트

 

존경받는 커뮤니티에 경의를 표합니다!

누군가는 설정에 지정된 특정 기간에 차트의 현재 막대 일련 번호에 대한 정보를 표시 하는 표시기를 작성할 수 있습니다. 예를 들어 지표는 일일 차트에서 시작되고 보고 기간은 설정에서 월로 설정됩니다. 이것은 칠면조가 차트에 숫자를 표시한다는 것을 의미합니다. 이 숫자는 달력 월의 시작부터 0 막대입니다. MT 4에서 부탁드립니다)

모두 새해 복 많이 받으세요)

사냥 잘하세요)

 
ALEXEY NIKOLAEV :

존경받는 커뮤니티에 경의를 표합니다!

누군가는 설정에 지정된 특정 기간에 차트의 현재 막대 일련 번호에 대한 정보를 표시 하는 표시기를 작성할 수 있습니다. 예를 들어 지표는 일일 차트에서 시작되고 보고 기간은 설정에서 월로 설정됩니다. 이것은 칠면조가 차트에 숫자를 표시한다는 것을 의미합니다. 이 숫자는 달력 월의 시작부터 0 막대입니다. MT 4에서 부탁드립니다)

모두 새해 복 많이 받으세요)

사냥 잘하세요)

일중만:

기능

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 26.02.2008                                                     |
//|  Описание : Возвращает расчётный номер бара от начала суток.               |
//|           : Нумерация баров начинается с 1 (единица).                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    tf - таймфрейм                       (0 - текущий таймфрейм)            |
//|    dt - дата и время открытия бара      (0 - текущее время)                |
//+----------------------------------------------------------------------------+
int iBarOfDayCalc( int tf= 0 , datetime dt= 0 ) {
   if (tf<= 0 ) tf= Period ();
   if (dt<= 0 ) dt= TimeCurrent ();
   if (tf> PERIOD_D1 ) {
     Print ( "iBarOfDayCalc(): Таймфрейм должен быть меньше или равен D1" );
     return ( 0 );
  }
   double ms= MathMod (dt/ 60 , 1440 );       // количество минут от начала суток
   int     bd= MathFloor (ms/tf)+ 1 ;         // номер бара от начала суток

   return (bd);
}