돕다!!!! 표시기를 MT4에서 MT5로 변환합니다.(무료) - 페이지 4

 
George Merts :

예, 상상해보십시오. 귀하가 제공하는 것은 약간의 노력과 그에 따른 돈의 가치가 있습니다.

모든 사람이 러시아어를 완벽하게 이해하지만 "감사합니다"를 어지럽히는 데 관심이 있는 사람은 거의 없습니다.

이제 지표가 필요한 성공적인 거래 경험이 있었다면 아마도 누군가가 수익성 있는 거래 아이디어를 대가로 돈 없이 무언가를 하는 데 동의할 것입니다. 그래서 - 순전히 "좋은 이름"을 위해 - 원하는 사람이 거의 없을 것입니다 ...

내 개인적인 경험은 그것과 관련이 없습니다.

저것들. 전설적인 Ichimoku가 당신에게 낯설습니까? 그는 수년 동안 자신을 증명하지 않았습니까?

문제는 저장소를 병합하거나 병합하지 않을 거래 로봇이 아닙니다.

이것은 경고가 붙어있는 전통적인 Ichimoku입니다. 결정은 거래자가 합니다.

그래서 러시아어를 이해하지 못하는 것으로 나타났습니다. 제 게시물 도 읽지 않으셨습니다.

나는 IchimokuAlert_v3.mq4 표시기를 거기에 게시했습니다.   mt4 용으로 작성했으며 사용한다고 썼습니다.

다운로드할 수 없는 사람들을 위한 MT4용 IchimokuAlert_v3.mq4 표시기 코드는 다음과 같습니다.

//+------------------------------------------------------------------+
//|                                             IchimokuAlert_v2.mq4 |
//|                                  Copyright © 2006, Forex-TSD.com |
//|                         Written by IgorAD,igorad2003@yahoo.co.uk |
//|                           Adapted and improved by Snowski © 2009 |  
//+------------------------------------------------------------------+

#property copyright "Copyright © 2006, Forex-TSD.com "
#property link        "http://www.forex-tsd.com/"

#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 SandyBrown
#property indicator_color4 Thistle
#property indicator_color5 Lime
#property indicator_color6 SandyBrown
#property indicator_color7 Thistle

//---- input parameters
extern int Tenkan             = 9 ;
extern int Kijun              = 26 ;
extern int Senkou             = 52 ;
extern bool UseAlerts         = true ;
extern bool MsgAlerts         = true ;
extern bool SoundAlerts       = true ;
extern bool eMailAlerts       = false ;
extern int AlertType          = 1 ;
extern string Alert_Setting   = "--- Alert Type:---" ;
extern string A_S0            = "0 = no alert" ;
extern string A_S1            = "1 = Tenkan crosses Kjiun" ;
extern string A_S2            = "2 = Kijun crosses Price" ;
extern string A_S3            = "3 = both" ;
extern bool Show_Tenkan       = true ;
extern bool Show_Kijun        = true ;
extern bool Show_Senkou       = true ;
extern bool Show_Kumo         = true ;
//---- buffers
double Tenkan_Buffer[];
double Kijun_Buffer[];
double SpanA_Buffer[];
double SpanB_Buffer[];
double Chinkou_Buffer[];
double SpanA2_Buffer[];
double SpanB2_Buffer[];
//----
int a_begin;
bool UptrendAlert1,DntrendAlert1,UptrendAlert2,DntrendAlert2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//----
   if (Show_Tenkan== true ){
       SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 );
       SetIndexBuffer ( 0 ,Tenkan_Buffer);
       SetIndexDrawBegin ( 0 ,Tenkan- 1 );
       SetIndexLabel ( 0 , "Tenkan Sen" );
   }  
//----
   if (Show_Kijun== true ){
       SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 2 );
       SetIndexBuffer ( 1 ,Kijun_Buffer);
       SetIndexDrawBegin ( 1 ,Kijun- 1 );
       SetIndexLabel ( 1 , "Kijun Sen" );
      }
//----
   if (Show_Kumo== true ){
      a_begin=Kijun; if (a_begin<Tenkan) a_begin=Tenkan;
       SetIndexStyle ( 2 , DRAW_HISTOGRAM , STYLE_DOT );
       SetIndexBuffer ( 2 ,SpanA_Buffer);
       SetIndexDrawBegin ( 2 ,Kijun+a_begin- 1 );
       SetIndexShift ( 2 ,Kijun);
       SetIndexLabel ( 2 , NULL );
       SetIndexStyle ( 5 , DRAW_LINE , STYLE_SOLID );
       SetIndexBuffer ( 5 ,SpanA2_Buffer);
       SetIndexDrawBegin ( 5 ,Kijun+a_begin- 1 );
       SetIndexShift ( 5 ,Kijun);
       SetIndexLabel ( 5 , "Senkou Span A" );
   }
//----
   if (Show_Kumo== true ){
       SetIndexStyle ( 3 , DRAW_HISTOGRAM , STYLE_DOT );
       SetIndexBuffer ( 3 ,SpanB_Buffer);
       SetIndexDrawBegin ( 3 ,Kijun+Senkou- 1 );
       SetIndexShift ( 3 ,Kijun);
       SetIndexLabel ( 3 , NULL );
       SetIndexStyle ( 6 , DRAW_LINE , STYLE_SOLID );
       SetIndexBuffer ( 6 ,SpanB2_Buffer);
       SetIndexDrawBegin ( 6 ,Kijun+Senkou- 1 );
       SetIndexShift ( 6 ,Kijun);
       SetIndexLabel ( 6 , "Senkou Span B" );
   }
//----
   if (Show_Senkou== true ){
       SetIndexStyle ( 4 , DRAW_LINE );
       SetIndexBuffer ( 4 ,Chinkou_Buffer);
       SetIndexShift ( 4 ,-Kijun);
       SetIndexLabel ( 4 , "Chinkou Span" );
   }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Ichimoku Kinko Hyo                                               |
//+------------------------------------------------------------------+
int start()
{
   int     i,k;
   int     counted_bars= IndicatorCounted ();
   double high,low,price;
//----
   if ( Bars <=Tenkan || Bars <=Kijun || Bars <=Senkou) return ( 0 );
//---- initial zero
   if (counted_bars< 1 )
     {
       for (i= 1 ;i<=Tenkan;i++)    Tenkan_Buffer[ Bars -i]= 0 ;
       for (i= 1 ;i<=Kijun;i++)     Kijun_Buffer[ Bars -i]= 0 ;
       for (i= 1 ;i<=a_begin;i++) { SpanA_Buffer[ Bars -i]= 0 ; SpanA2_Buffer[ Bars -i]= 0 ; }
       for (i= 1 ;i<=Senkou;i++)  { SpanB_Buffer[ Bars -i]= 0 ; SpanB2_Buffer[ Bars -i]= 0 ; }
     }
//---- Tenkan Sen
      i= Bars -Tenkan;
       if (counted_bars>Tenkan) i= Bars -counted_bars- 1 ;
         while (i>= 0 )
            {
            high= High [i]; low= Low [i]; k=i- 1 +Tenkan;
         while (k>=i)
            {
            price= High [k];
             if (high<price) high=price;
            price= Low [k];
             if (low>price)  low=price;
            k--;
           }
         Tenkan_Buffer[i]=(high+low)/ 2 ;
         i--;
      }
//---- Kijun Sen
   i= Bars -Kijun;
   if (counted_bars>Kijun) i= Bars -counted_bars- 1 ;
   while (i>= 0 )
     {
      high= High [i]; low= Low [i]; k=i- 1 +Kijun;
       while (k>=i)
        {
         price= High [k];
         if (high<price) high=price;
         price= Low [k];
         if (low>price)  low=price;
         k--;
        }
      Kijun_Buffer[i]=(high+low)/ 2 ;
      i--;
     }
//---- Senkou Span A
   i= Bars -a_begin+ 1 ;
   if (counted_bars>a_begin- 1 ) i= Bars -counted_bars- 1 ;
   while (i>= 0 )
     {
      price=(Kijun_Buffer[i]+Tenkan_Buffer[i])/ 2 ;
      SpanA_Buffer[i]=price;
      SpanA2_Buffer[i]=price;
      i--;
     }
//---- Senkou Span B
   i= Bars -Senkou;
   if (counted_bars>Senkou) i= Bars -counted_bars- 1 ;
   while (i>= 0 )
     {
      high= High [i]; low= Low [i]; k=i- 1 +Senkou;
       while (k>=i)
        {
         price= High [k];
         if (high<price) high=price;
         price= Low [k];
         if (low>price)  low=price;
         k--;
        }
      price=(high+low)/ 2 ;
      SpanB_Buffer[i]=price;
      SpanB2_Buffer[i]=price;
      i--;
     }
//---- Chinkou Span
   i= Bars - 1 ;
   if (counted_bars> 1 ) i= Bars -counted_bars- 1 ;
   while (i>= 0 ) { Chinkou_Buffer[i]= Close [i]; i--; }
  
//----
   string Msg,Subj;
  
   if (AlertType == 1 || AlertType == 3 )
   {
       if (Tenkan_Buffer[ 1 ]>Kijun_Buffer[ 1 ] && Tenkan_Buffer[ 2 ]<Kijun_Buffer[ 2 ] && !UptrendAlert1)
      {
         Subj = "Tenkan crosses Kijun: " + Symbol ()+ " on M" + Period ();
         Msg = "BUY Signal --- : " +Subj+ " @ " + DoubleToStr ( Close [ 1 ], Digits ) + ", @ " + TimeToStr ( TimeLocal (), TIME_SECONDS );
         UptrendAlert1 = true ;
         DntrendAlert1 = false ;
         DoAlerts(Msg,Subj);
      }
       if ( Tenkan_Buffer[ 1 ]<Kijun_Buffer[ 1 ] && Tenkan_Buffer[ 2 ]>Kijun_Buffer[ 2 ] && !DntrendAlert1)
      {  
         Subj = "Tenkan crosses Kijun: " + Symbol ()+ " on M" + Period ();
         Msg = "SELL Signal --- : " +Subj+ " @ " + DoubleToStr ( Close [ 1 ], Digits ) + ", @ " + TimeToStr ( TimeLocal (), TIME_SECONDS );
         UptrendAlert1 = false ;
         DntrendAlert1 = true ;
         DoAlerts(Msg,Subj);
      }
   }
  
   if (AlertType == 2 || AlertType == 3 )
   {
       if ( Close [ 1 ]> Close [ 1 +Kijun] && Close [ 2 ]< Close [ 2 +Kijun] && !UptrendAlert2)
      {
         Subj = "Kijun crossed Price: " + Symbol ()+ " on M" + Period ();
         Msg = "BUY Signal --- : " +Subj+ " @ " + DoubleToStr ( Close [ 1 ], Digits ) + ", @ " + TimeToStr ( TimeLocal (), TIME_SECONDS );
         DntrendAlert2 = false ;
         UptrendAlert2 = true ;
         DoAlerts(Msg,Subj);
      }
       if ( Close [ 1 ]< Close [ 1 +Kijun] && Close [ 2 ]> Close [ 2 +Kijun] && !DntrendAlert2)
      {
         Subj = "Kijun crossed Price: " + Symbol ()+ " on M" + Period ();
         Msg = "SELL Signal --- : " +Subj+ " @ " + DoubleToStr ( Close [ 1 ], Digits ) + ", @ " + TimeToStr ( TimeLocal (), TIME_SECONDS );
         DntrendAlert2 = true ;
         UptrendAlert2 = false ;
         DoAlerts(Msg,Subj);
      }
   }
   return ( 0 );
}

void DoAlerts( string msgText, string eMailSub)
{
   if (MsgAlerts) Alert (msgText);
   if (eMailAlerts) SendMail (eMailSub, msgText);
}
//+------------------------------------------------------------------+

 
Ваня :

내 개인적인 경험은 그것과 관련이 없습니다.

저것들. 전설적인 Ichimoku가 당신에게 낯설습니까? 그는 수년 동안 자신을 증명하지 않았습니까?

문제는 저장소를 병합하거나 병합하지 않을 거래 로봇이 아닙니다.

이것은 경고가 붙어있는 전통적인 Ichimoku입니다. 결정은 거래자가 합니다.

귀하의 질문은 무엇인가?

개선하고 싶은 것이 있습니다. 수정이 간단하면 "감사합니다." 하지만 프리랜스를 추천하는 만큼 개선이 그리 작지 않다는 뜻이다.

그리고 주요 개선 사항은 두 가지 기반에서만 이루어집니다. 상인은 작업에 대한 비용을 지불하거나 실제로 작동하는 수단을 제공합니다.

ichimoku 표시기를 제공하지만 표시기는 시스템이 아닙니다. 따라서 아무도 정말로 어지럽히고 싶어하지 않습니다.

 

글쎄, 모든 것이 올바르게 오류를 작성합니다.

당신은 스스로 볼 수 있습니다 - 컨트롤이 언제 if 문에 올까요?

두 경우 모두 이 연산자는 단순히 "공중에서 중단"됩니다. 이는 컴파일러가 경고하는 것입니다. "이 표현은 글로벌 수준에서 허용되지 않습니다."

if 문은 경고가 있어야 하는 지점에 있어야 하며 "공중에서 매달리는" 것이 아닙니다.

그리고 MT4 또는 MT5에는 차이가 없습니다. 두 경우 모두 수행할 수 없습니다. if 문은 제어를 분기 중 하나로 전달하며 "그냥 공중에 매달릴" 수 없습니다.

프로시저와 함수만 "공중에서" 중단될 수 있으며 이벤트를 처리 할 때 터미널에서 호출됩니다(OnCalculte() 또는 사용자가 직접 DoAlerts()).

 
George Merts :

글쎄, 모든 것이 올바르게 오류를 작성합니다.

당신은 스스로 볼 수 있습니다 - 컨트롤이 언제 if 문에 올까요?

두 경우 모두 이 연산자는 단순히 "공중에서 중단"됩니다. 이는 컴파일러가 경고하는 것입니다. "이 표현은 글로벌 수준에서 허용되지 않습니다."

if 문은 경고가 있어야 하는 지점에 있어야 하며 "공중에서 매달리는" 것이 아닙니다.

그리고 MT4 또는 MT5에는 차이가 없습니다. 두 경우 모두 수행할 수 없습니다. if 문은 제어를 분기 중 하나로 전달하며 "그냥 공중에 매달릴" 수 없습니다.

프로시저와 함수만 "공중에서" 중단될 수 있으며 이벤트를 처리 할 때 터미널에서 호출됩니다(OnCalculte() 또는 사용자가 직접 DoAlerts()).

나는 프로그래머가 아니다

나에게 그것은 어두운 숲이다

 
Ваня :

나는 프로그래머가 아니다

나에게 그것은 어두운 숲이다

글쎄, 그래서 당신은 프리랜서 서비스에 지적되었습니다. 거기에 프로그래머가 거주하며, 당신과 쉽게 TOR를 형성하고 합리적인 가격으로 완성할 것입니다.

초보자를 도울 수 있는 포럼도 있지만 정확히는 프로그래머로 성장하기 위해 노력하는 사람들을 도울 수 있습니다. 상당히 많은 거래자가 이에 관심이 없으며 Freelancing은 그들에게 매우 합리적인 솔루션입니다.

 
George Merts :

글쎄, 그래서 당신은 프리랜서 서비스에 지적되었습니다. 거기에는 프로그래머가 거주하며 귀하와 동의하는 기술 사양을 쉽게 작성하고 합리적인 가격으로 완성합니다.

초보자를 도울 수 있지만 프로그래머로 성장하기 위해 노력하는 사람들을 도울 수있는 포럼도 있습니다. 상당수의 트레이더는 이에 관심이 없으며 Freelancing은 그들에게 매우 합리적인 솔루션입니다.

나는 단지 MT5를 테스트하고 싶었다.

MT4에는 모든 지표가 있습니다. 그들은 일한다.

편안하게 테스트하는 것조차 불가능하기 때문에 ...

이제 나는 MT5가 여전히 치질이라는 것을 깨달았습니다.

 
Ваня :

MT5를 테스트하고 싶었습니다.

MT4에는 모든 지표가 있습니다. 그들은 일한다.

편안하게 테스트하는 것조차 불가능하기 때문에 ...

이제 나는 MT5가 여전히 치질이라는 것을 깨달았습니다.

Mt5는 mql5와 마찬가지로 치질이 전혀 아닙니다.

나는 지표를 테스트 하지 않았습니다. 문제가 있으면 작성하면 내가 직접 테스트하고 문제를 찾을 것입니다.
 
Alexey Viktorov :
Mt5는 mql5와 마찬가지로 치질이 전혀 아닙니다.

나는 지표를 테스트 하지 않았습니다. 문제가 있으면 작성하면 내가 직접 테스트하고 문제를 찾을 것입니다.
ArraySetAsSeries를 잊어 버렸습니다.
 
o_O :
ArraySetAsSeries를 잊어 버렸습니다.
예... 이미 수정 중입니다.



이제 수정, 확인되었습니다. 알림이 있는데 맞는지 모르겠네요.

Vanya , 확인 후 알림이 맞는지 알려주세요. 표시기는 CodeBase에 있습니다.
파일:
 
Alexey Viktorov :
예... 이미 수정 중입니다.



이제 수정, 확인되었습니다. 알림이 있는데 맞는지 모르겠네요.

Vanya , 확인 후 알림이 맞는지 알려주세요. 표시기는 CodeBase에 있습니다.

고맙습니다! 친절한 사람! 건강과 이익이 영원히 당신에게 오기를 바랍니다!

나는 테스트 할 것이다.