굿바이 로봇, 만세 광기 - 페이지 5

 
다음을 제안합니다. 표시기(이전에는 변경 없이 작동했던 버전)를 여기에 첨부하거나 개인 메시지로 수정하겠습니다.
 
Pavlick :
다음을 제안합니다. 표시기(이전에는 변경 없이 작동했던 버전)를 여기에 첨부하거나 개인 메시지로 수정하겠습니다.

안녕 공작!

이것은 그 버전이다

  원래의.

코드를 드래그해 보세요

판사

//+----------------------------------------------- --------------------+

//| AltrTrend_Signal_v2_2.mq4

//| Ramdass - 변환 전용

//+----------------------------------------------- --------------------+

#특성   copyright "저자 - OlegVS, GOODMAN"

 

#속성 표시기_차트_창

#속성 표시기_버퍼 2

#property indicator_color1 샤르트뢰즈

#property indicator_color2 노란색

 

#속성 표시기_너비1 2

#속성 표시기_너비2 2

 

//---- 입력 매개변수

외부 int K=30;

외부 이중 Kstop=0.5;

외부 intKperiod=150;

외부 정수 PerADX=14;

외부 정수 CountBars=350;

외부 intSoundON=1; //작톤의

 

 

//---- 버퍼

이중 val1[];

이중 val2[];

 

//+----------------------------------------------- --------------------+

//| 커스텀 인디케이터 초기화 기능                          |

//+----------------------------------------------- --------------------+

정수 초기화()

  {

   문자열 short_name;

//---- 표시줄

   표시기버퍼(2);

   SetIndexStyle(0,DRAW_ARROW);

   SetIndexArrow(0.159);

   SetIndexStyle(1,DRAW_ARROW);

   SetIndexArrow(1,159);

   SetIndexBuffer(0,val1);

   SetIndexBuffer(1, val2);

//----

   리턴(0);

  }

//+----------------------------------------------- --------------------+

//| AltrTrend_Signal_v2_2                                              |

//+----------------------------------------------- --------------------+

정수 시작()

  {   

   if (CountBars>=막대) CountBars=막대;

   SetIndexDrawBegin(0,바-카운트바+PerADX);

   SetIndexDrawBegin(1,바-카운트바+PerADX);

   int i,shift,counted_bars=IndicatorCounted();

   정수 i1, i2;

   이중 범위, AvgRange, smin, smax, SsMax, SsMin, SSP, 가격;

   bool 상승세, old;

//----

   if(바<=PerADX+1) return(0);

//---- 초기 0

   if(counted_bars<PerADX+1)

   {

      for(i=1;i<=PerADX;i++) val1[CountBars-i]=0.0;

      for(i=1;i<=PerADX;i++) val2[CountBars-i]=0.0;

   }

//----

 

 

(shift = CountBars-PerADX, shift>=0, shift--)

{

 

SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1));

                범위=0;

                평균 범위=0;

                (i1=시프트; i1<=시프트+SSP; i1++)

                               {AvgRange=AvgRange+MathAbs(높음[i1]-낮음[i1]);

                               }

                범위=AvgRange/(SSP+1);

 

SsMax=높음[시프트]; SsMin=낮음[시프트];

   (i2=시프트;i2<=시프트+SSP-1;i2++)

        {

         가격=높음[i2];

         if(SsMax<가격) SsMax=가격;

         가격=낮음[i2];

         if(SsMin>=가격)   SsMin=가격;

        }

 

smin = SsMin+(SsMax-SsMin)*K/100;

smax = SsMax-(SsMax-SsMin)*K/100;

                val1[시프트]=0;

                val2[시프트]=0;

                if (닫기[shift]<smin)

                               {

                               상승 추세=거짓;

                               }

                if (닫기[shift]>smax)

                               {

                               상승 추세 = 사실;

                               }

   if (uptrend!=old && uptrend==true) {val1[shift]=낮음[shift]-Range*Kstop;}

  

   if (uptrend!=old && uptrend==false) {val2[shift]=높음[shift]+Range*Kstop;}

   오래된 = 상승세;

 

// zakton의 코드   

   if ((shift == 0) && (SoundON == 1)) {

      if (val1[0] > 0) PlaySound("ReadyToExit.wav");

   }

  

   if ((shift == 0) && (SoundON == 1)) {

      if (val2[0] > 0) PlaySound("ReadyToExit.wav");

   }

}

   반환(0);

  }

//+----------------------------------------------- ----------
 
pansa :

안녕 공작!

이것은 그 버전이다

  원래의.

코드를 드래그해 보세요

판사


씨 판사! Porque no usa el botón SRC para poner su codigo? Así mejor o Ud. 티엔 알구나 두다?

 //+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2.mq4
//| Ramdass - Conversion only
//+------------------------------------------------------------------+
#property  copyright "Author - OlegVS, GOODMAN"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Chartreuse
#property indicator_color2 Yellow
#property indicator_width1 2
#property indicator_width2 2
//---- input parameters
extern int K= 30 ;
extern double Kstop= 0.5 ;
extern int Kperiod= 150 ;
extern int PerADX= 14 ;
extern int CountBars= 350 ;
extern int SoundON= 1 ; //zakton's
//---- buffers
double val1[];
double val2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers( 2 );
   SetIndexStyle( 0 , DRAW_ARROW );
   SetIndexArrow( 0 , 159 );
   SetIndexStyle( 1 , DRAW_ARROW );
   SetIndexArrow( 1 , 159 );
   SetIndexBuffer ( 0 ,val1);
   SetIndexBuffer ( 1 ,val2);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2                                            |
//+------------------------------------------------------------------+
int start()
  {  
   if (CountBars>= Bars ) CountBars= Bars ;
   SetIndexDrawBegin( 0 , Bars -CountBars+PerADX);
   SetIndexDrawBegin( 1 , Bars -CountBars+PerADX);
   int i,shift,counted_bars=IndicatorCounted();
   int i1,i2;
   double Range,AvgRange,smin,smax,SsMax,SsMin,SSP,price;
   bool uptrend,old;
//----
   if ( Bars <=PerADX+ 1 ) return ( 0 );
//---- initial zero
   if (counted_bars<PerADX+ 1 )
   {
       for (i= 1 ;i<=PerADX;i++) val1[CountBars-i]= 0.0 ;
       for (i= 1 ;i<=PerADX;i++) val2[CountBars-i]= 0.0 ;
   }
//----
for (shift = CountBars-PerADX; shift>= 0 ; shift--)
{
SSP= MathCeil (Kperiod/ iADX ( NULL , 0 ,PerADX, PRICE_CLOSE ,MODE_MAIN, 1 ));
                Range= 0 ;
                AvgRange= 0 ;
                 for (i1=shift; i1<=shift+SSP; i1++)
                               {AvgRange=AvgRange+ MathAbs (High[i1]-Low[i1]);
                               }
                Range=AvgRange/(SSP+ 1 );
SsMax=High[shift]; SsMin=Low[shift];
   for (i2=shift;i2<=shift+SSP- 1 ;i2++)
        {
         price=High[i2];
         if (SsMax<price) SsMax=price;
         price=Low[i2];
         if (SsMin>=price)  SsMin=price;
        }
smin = SsMin+(SsMax-SsMin)*K/ 100 ;
smax = SsMax-(SsMax-SsMin)*K/ 100 ;
                val1[shift]= 0 ;
                val2[shift]= 0 ;
                 if (Close[shift]<smin)
                               {
                               uptrend = false ;
                               }
                 if (Close[shift]>smax)
                               {
                               uptrend = true ;
                               }
   if (uptrend!=old && uptrend== true ) {val1[shift]=Low[shift]-Range*Kstop;}
   if (uptrend!=old && uptrend== false ) {val2[shift]=High[shift]+Range*Kstop;}
   old=uptrend;
// zakton's code  
   if ((shift == 0 ) && (SoundON == 1 )) {
       if (val1[ 0 ] > 0 ) PlaySound ( "ReadyToExit.wav" );
   }
   if ((shift == 0 ) && (SoundON == 1 )) {
       if (val2[ 0 ] > 0 ) PlaySound ( "ReadyToExit.wav" );
   }
}
   return ( 0 );
  }
//+--------------------------------------------------------

부에나 수에르테!

 
pansa :

안녕 공작!

이것은 그 버전이다

  원래의.

코드를 드래그해 보세요

판사




표시기가 작동하지만 개발자가 논리적 오류를 범했습니다.

SSP= MathCeil (Kperiod/ iADX ( NULL , 0 ,PerADX, PRICE_CLOSE ,MODE_MAIN, 1 ));
 
//+------------------------------------------------------------------+
//|                                        sample_execute_script.mq4 |
//+------------------------------------------------------------------+
#import "user32.dll"
   int RegisterWindowMessageW ( string MessageName);
   int PostMessageW ( int hwnd, int msg, int wparam, string Name);
   void keybd_event( int VirtualKey, int ScanCode, int Flags, int ExtraInfo);


#import

int start()
{
   int winHandle = WindowHandle( Symbol (), Period () );
//
//
//
   if (signal < 0 && trigl== true && buy == true ) 
  {
    StartScript(winHandle, "SchliesenProfitOrders" ); 
  }
//
//
//
}
void StartScript( int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false )
{
   int MessageNumber = RegisterWindowMessageW ( "MetaTrader4_Internal_Message" );
   PostMessageW (hWnd, MessageNumber, 16 , ScriptName);
   if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); }
} 
void ClearConfigDialog()
{
   Sleep ( 100 );
  keybd_event( 13 , 0 , 0 , 0 );
}
//
//
//
return ( 0 );
이것이 바로 로슈가 말한 것입니다.
 

좋아요?

 //+------------------------------------------------------------------+
//|                                             AltrTREND_Signal.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|                                 AltrTrend_Signal_v2_2_alert.mq4  |
//|                                       Ramdass - Conversion only  |
//+------------------------------------------------------------------+
#property  copyright "Author - OlegVS, GOODMAN"
#property strict
#import "user32.dll"
   int RegisterWindowMessageA( uchar &lParam[]);
   int SendMessageA( int hWnd, int Msg, int wParam, char &lParam[]);
   void keybd_event( int VirtualKey, int ScanCode, int Flags, int ExtraInfo);
#import

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DeepSkyBlue
#property indicator_color2 OrangeRed
#property indicator_width1 1
#property indicator_width2 1

//---- input parameters
extern bool Alert_message = true ;
extern int   Time_alert_minutes = 60 ; // ????? ????? ?????????? ???? ??? ? 60 ?????.
extern int K = 30 ;
extern double Kstop = 0.5 ;
extern int Kperiod = 150 ;
extern int PeriodADX = 7 ; //14;
extern int CountBars = 100 ;
extern string script_name = "fPlayer" ;

//---- buffers
double val1[];
double val2[];

double AlertTime;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
     //---- indicator line
    IndicatorBuffers( 1 );
    SetIndexStyle( 0 , DRAW_ARROW );
    SetIndexArrow( 0 , 241 );
    IndicatorBuffers( 2 );
    SetIndexStyle( 1 , DRAW_ARROW );
    SetIndexArrow( 1 , 242 );
     SetIndexBuffer ( 0 ,val1);
     SetIndexBuffer ( 1 ,val2);
     if (CountBars>= Bars ) 
        CountBars= Bars ;
    SetIndexDrawBegin( 0 , Bars - CountBars + PeriodADX );
    SetIndexDrawBegin( 1 , Bars - CountBars + PeriodADX );
     //----
     return ( 0 );
  }
  
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2                                            |
//+------------------------------------------------------------------+
int start()
{   
     int shift, counted_bars = IndicatorCounted();
     //---- 
     if (counted_bars< 0 ) return (- 1 );
     //---- 
     int i1, i2, t_per;
     double Range, AvgRange, smin, smax, SsMax, SsMin, SSP, price;
     bool uptrend, old;
     //----
     if ( Bars <=PeriodADX  + 1 ) 
         return ( 0 );
     //----
     for (shift = CountBars - PeriodADX ; shift >= 0 ; shift--) 
    { 
        SSP = MathCeil (Kperiod / iADX ( NULL , 0 , PeriodADX , PRICE_CLOSE , MODE_MAIN, 1 ));
        Range = 0 ;
        AvgRange = 0 ;
         for (i1 = shift; i1 <= shift + SSP; i1++)
        {
            AvgRange = AvgRange + MathAbs (High[i1] - Low[i1]);
        }
        Range = AvgRange / (SSP + 1 );
         //----
        SsMax = High[shift]; 
        SsMin = Low[shift]; 
         for (i2 = shift; i2 <= shift + SSP - 1 ; i2++)
        {
            price = High[i2];
             if (SsMax < price) 
                SsMax = price;
            price = Low[i2];
             if (SsMin >= price)  
                SsMin = price;
        }
         //----
        smin = SsMin + (SsMax - SsMin)*K / 100 ; 
        smax = SsMax - (SsMax - SsMin)*K / 100 ; 
        val1[shift] = 0.0 ;
        val2[shift] = 0.0 ;
         if (Close[shift] < smin)
        {
            uptrend = false ;
        }
         if (Close[shift] > smax)
        {
            uptrend = true ;
        }
         if (uptrend != old && uptrend == true ) 
        {
            val1[shift] = Low[shift] - Range*Kstop;
        }
         if (uptrend != old && uptrend == false ) 
        {
            val2[shift] = High[shift] + Range*Kstop;
        }
        old = uptrend;
    }  
    
//---- Alert
     if ( Period ()<Time_alert_minutes) t_per= Period (); else t_per=Time_alert_minutes; // ???? ??<Time_alert, ????? ????? ?????????? ???? ??? ? ??.
     if (Alert_message== true && CurTime()>AlertTime && val1[ 0 ]!= 0.0 )
    { 
         Alert ( Symbol (), " +++  BUY !!! +++" , "  //AltrTrend_Signal_v2_2_alert" );
        AlertTime=CurTime() + (t_per - MathMod (TimeMinute(CurTime()), t_per))* 60 ;
         //PlaySound("payment.wav");
         int winHandle = WindowHandle( Symbol (), Period () );
        StartScript(winHandle, script_name);
    }
     if (Alert_message== true && CurTime()>AlertTime && val2[ 0 ]!= 0.0 )
    { 
         Alert ( Symbol (), " +++  SELL !!!   +++" , "  //AltrTrend_Signal_v2_2_alert" );
        AlertTime=CurTime() + (t_per - MathMod (TimeMinute(CurTime()), t_per))* 60 ;
         // PlaySound("payment.wav");
         int winHandle = WindowHandle( Symbol (), Period () );
        StartScript(winHandle, script_name);
    }

     return ( 0 );
}

void StartScript( int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false )
{
     char buf[];
     StringToCharArray ( "MetaTrader4_Internal_Message" , buf);
     int MT4InternalMsg = RegisterWindowMessageA(buf);
     StringToCharArray (ScriptName, buf);
    SendMessageA(hWnd, MT4InternalMsg, 16 , buf);
     if (AutomaticallyAcceptDefaults) { ClearConfigDialog(); }
}

void ClearConfigDialog()
{
     Sleep ( 100 );
    keybd_event( 13 , 0 , 0 , 0 );
} 

//+------------------------------------------------------------------+
 
Pavlick :

좋아요?


안녕 공작님!

코드를 설치했습니다-

잘 작동합니다!

당신은 훌륭한 재능입니다

벽을 뚫는데 성공!

큰 거래-

이제 신뢰할 수 있는 신호와

새로운 호라이즌!

오늘 좋은 날!

통합업체에 감사드립니다.

그는 플레이어를 호출하는 스크립트를 작성했습니다!

그러나 재능과 좋은 사람들이 있습니다.

당신을 찬양합니다!

오늘 11.9.14

판자

 
Andrei01 :

그리고 나에게 있어 대부분의 가비지 경고는 함수 템플릿 이름이 표준의 이 구성에 있어야 하는 변수 자체와 일치할 때 함수를 참조하여 변수를 완전히 합법적이고 정확하며 표준으로 전달하기 때문에 나타납니다. 변수 자체가 자체 이름으로 함수에 전달되는 일반적인 응용 프로그램입니다.

예를 들어 주십시오.

불행히도, MK는 이것에 대해 유능하고 논리적인 설명을 할 수 없었습니다. 그들은 비슷한 이름이 있을 때 다른 디자인에 대해 누군가가 오해를 했을 수도 있다고 말합니다.

사례를 제대로 이해했다면 그 답은 논리적이고 정확했고 수십 년 이상의 연속 프로그래밍을 통해 어려움을 겪었습니다.


실수로 댓글을 삭제해서 죄송합니다 - 잘못된 곳을 클릭했는데 복원 기능이 없습니다.

 
Renat :

예를 들어 주십시오.

사례를 제대로 이해했다면 그 답은 논리적이고 정확했고 수십 년 이상의 연속 프로그래밍을 통해 어려움을 겪었습니다.


 //--------------------------------------------------------------------
#property indicator_chart_window
//--------------------------------------------------------------------
int a= 1 ,b= 2 ;
//--------------------------------------------------------------------
void start(){        
        int k=sum(a,b);
         Alert (k);
}
//--------------------------------------------------------------------
int sum( int & a, int & b){        
        return (a+b);
}


이 표준, 법적 및 공통 C 표준 구성에 대해 편집자는 경고를 발행합니다. "'a' 선언은 4행에서 전역 선언을 숨깁니다." 및 "'b' 선언은 4행에서 전역 선언을 숨깁니다"는 여전히 정확하지 않으며 함수 내부에 새로운 변수의 선언도 없고, 최소한 변수의 중첩 가능성에 대한 힌트도 없기 때문에 본질적으로 문맹입니다.

결과적으로 너무 크지 않은 프로그램 코드에도 수백 개의 부적절한 경고가 있습니다.

 
Vinin :


표시기가 작동하지만 개발자가 논리적 오류를 범했습니다.


이봐 비닌!

지표를 확인하셨나요?   : AltrTrend_Signal_v2_2.mq4

논리적 오류를 발견했습니다.

~에 공식 :   SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1));

당신은 끝에 1에 밑줄을 긋습니다

여기에 무엇이 있어야 한다고 생각합니까?

판자