Güle güle robot, yaşasın delilik - sayfa 5

 
Aşağıdakileri öneririm: göstergeyi (daha önce çalışan sürüm, değişiklik yapılmadan) buraya veya kişisel bir mesajla ekleyin, düzelteceğim.
 
Pavlick :
Aşağıdakileri öneririm: göstergeyi (daha önce çalışan sürüm, değişiklik yapılmadan) buraya veya kişisel bir mesajla ekleyin, düzelteceğim.

merhaba tavus kuşu!

bu o versiyon

  orijinal.

kodu sürüklemeyi deneyin

pansa

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

//| AltrTrend_Signal_v2_2.mq4

//| Ramdass - Yalnızca dönüştürme

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

#Emlak   telif hakkı "Yazar - OlegVS, GOODMAN"

 

#özellik göstergesi_chart_window

#özellik göstergesi_tamponları 2

#özellik göstergesi_color1 Chartreuse

#özellik göstergesi_color2 Sarı

 

#özellik göstergesi_width1 2

#özellik göstergesi_width2 2

 

//---- giriş parametreleri

dış int K=30;

dış çift Kstop=0.5;

harici intKperiod=150;

harici int PerADX=14;

harici int CountBars=350;

harici intSoundON=1; //zakton'lar

 

 

//---- arabellekler

çift val1[];

çift val2[];

 

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

//| Özel gösterge başlatma işlevi                          |

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

int init()

  {

   string kısa_adı;

//---- gösterge çizgisi

   Gösterge Tamponları(2);

   SetIndexStyle(0,DRAW_ARROW);

   SetIndexArrow(0.159);

   SetIndexStyle(1,DRAW_ARROW);

   SetIndexArrow(1,159);

   SetIndexBuffer(0,val1);

   SetIndexBuffer(1,val2);

//----

   dönüş(0);

  }

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

//| AltrTrend_Signal_v2_2                                              |

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

int başlangıç()

  {   

   if (CountBars>=Barlar) CountBars=Barlar;

   SetIndexDrawBegin(0,Bars-CountBars+PerADX);

   SetIndexDrawBegin(1,Bars-CountBars+PerADX);

   int i,shift,counted_bars=IndicatorCounted();

   int i1,i2;

   çift Aralık,AvgRange,smin,smax,SsMax,SsMin,SSP,fiyat;

   bool yükseliş trendi, eski;

//----

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

//---- ilk sıfır

   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));

                aralık = 0;

                OrtAralık=0;

                için (i1=shift; i1<=shift+SSP; i1++)

                               {AvgRange=OrtRange+MathAbs(Yüksek[i1]-Düşük[i1]);

                               }

                Aralık=OrtAralık/(SSP+1);

 

SsMax=Yüksek[shift]; SsMin=Düşük[shift];

   (i2=shift;i2<=shift+SSP-1;i2++) için

        {

         fiyat=Yüksek[i2];

         if(SsMax<fiyat) SsMax=fiyat;

         fiyat=düşük[i2];

         if(SsMin>=fiyat)   SsMin=fiyat;

        }

 

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

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

                val1[shift]=0;

                val2[shift]=0;

                if (Close[shift]<smin)

                               {

                               yükseliş trendi=yanlış;

                               }

                if (Close[shift]>smax)

                               {

                               yükseliş trendi=doğru;

                               }

   if (yükseliş trendi!=eski && yükseliş trendi==true) {val1[shift]=Düşük[shift]-Range*Kstop;}

  

   if (yükseliş trendi!=eski && yükseliş trendi==yanlış) {val2[shift]=Yüksek[shift]+Range*Kstop;}

   eski=yükseliş trendi;

 

// zakton'un kodu   

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

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

   }

  

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

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

   }

}

   dönüş(0);

  }

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

merhaba tavus kuşu!

bu o versiyon

  orijinal.

kodu sürüklemeyi deneyin

pansa


Bay Pansa! Porque no usa el botón SRC para poner su codigo? Así mejor veya Ud. tiene alguna duda?

 //+------------------------------------------------------------------+
//| 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 );
  }
//+--------------------------------------------------------

Buena suerte!

 
pansa :

merhaba tavus kuşu!

bu o versiyon

  orijinal.

kodu sürüklemeyi deneyin

pansa




Gösterge çalışıyor, ancak geliştirici içinde mantıksal bir hata yaptı

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 );
Roche'un bahsettiği şey buydu.
 

tamam?

 //+------------------------------------------------------------------+
//|                                             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 :

tamam?


Merhaba tavus kuşu!

kodunu yükle-

harika çalışıyor!

sen harika bir yeteneksin

duvarı aşmayı başardı!

büyük anlaşma-

artık güvenilir sinyaller ve

yeni ufuklar!

bugün ne güzel bir gün!

entegratöre teşekkür etmek istiyorum

oyuncuyu aramak için bir senaryo yazdı!

Ancak, yetenekler ve iyi insanlar var

Sana övgü!

bugün 11.9.14

pansa

 
Andrei01 :

Ve benim için, bir değişkenin bir işleve referansla tamamen yasal, doğru ve standart geçişi nedeniyle, işlev şablonu adı değişkenin kendisiyle eşleştiğinde, standart yapısında olması gerektiği gibi, çöp uyarılarının çoğu açılır. ve tipik uygulama, değişkenin kendisi fonksiyona kendi adı altında iletildiğinde.

Bir örnek verin lütfen.

Maalesef MK buna yetkin ve mantıklı bir açıklama yapamadı, bazen oradaki birinin sözde benzer isimler varken başka tasarımlarda yanlış anlama olabileceğini söylüyorlar.

Vakayı doğru anladıysam, o zaman cevap hem mantıklı hem de doğruydu ve birkaç on yıldan fazla sürekli programlamadan muzdaripti.


Yanlışlıkla silinen yorum için özür dilerim - Yanlış yere tıkladım, ancak geri yükleme işlevi yok.

 
Renat :

Bir örnek verin lütfen.

Vakayı doğru anladıysam, o zaman cevap hem mantıklı hem de doğruydu ve birkaç on yıldan fazla sürekli programlamadan muzdaripti.


 //--------------------------------------------------------------------
#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);
}


Bu standart, yasal ve yaygın C standartları yapısı için, editör bir uyarı verir: "'a' beyanı 4. satırda global beyanı gizler" ve "'b' beyanı 4. satırda global beyanı gizler", ki bu hala yanlıştır ve doğası gereği okuma yazma bilmeyen, çünkü ne işlev içinde yeni bir değişken bildirimi ne de en azından bazı olası değişken çakışmalarına dair bir ipucu yoktur.

Sonuç olarak, çok büyük olmayan program kodunda bile yüzlerce uygunsuz uyarımız var.

 
Vinin :


Gösterge çalışıyor, ancak geliştirici içinde mantıksal bir hata yaptı


Hey Vinyn!

Göstergeyi kontrol ettiniz mi?   : AltrTrend_Signal_v2_2.mq4

ve mantıksal bir hata buldu

içinde formül :   SSP=MathCeil(Kperiod/iADX(NULL,0,PerADX,PRICE_CLOSE,MODE_MAIN,1));

sonunda 1'in altını çizdin

Sizce burada ne olmalı?

pansa

Neden: