Kodlama yardımı - sayfa 758

 
anees :

ama burada birçok kişinin kod yazdığını gördüm, bunların hepsinin onlar tarafından yazılmadığından eminim.

Aslında yukarıda eklediğim kod sizin konunuzda da mevcut https://www.mql5.com/en/forum/180648/page623 , Yorum # 9337

lütfen bana yardım edebilir misin? teşekkür ederim.

Ve bu gönderiyi de göremiyorsunuz: https://www.mql5.com/en/forum/180648/page623 ? Lütfen ciddi olun...


Diğer kullanıcılar tarafından gönderilen kodun onlar tarafından kodlandığını söylemiyorum (aslında çoğu değil)

Söylediğim şey, benim (içimde olduğu gibi, "mladen") çalınan (decompiled) koda dokunmayacağım - ve bunu söylediğim yerde (sizin "görmediğiniz" gibi) çok, çok sayıda gönderi göreceksiniz. . Bu nedenle, orijinal kodu gönderemezseniz, böyle bir kodla hiçbir şey yapmayacağım. Beğen ya da beğenme, olan bu ... en iyisi

 
Sevgili Mladen, iMA veya iCustomMa işlevlerinin genişletilmiş bir fiyatla nasıl kullanılacağı,
örneğin pr_haclose gibi? En basit çözümler
iMA(NULL,0,avgPeriod,0,avgType,pr_haclose,i);

iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
uyarıları döndürür.
 
wojtekpaul :
Sayın Mladen, iMA veya iCustomMa işlevlerinin genişletilmiş bir fiyatla nasıl kullanılacağı,
örneğin pr_haclose gibi? En basit çözümler
iMA(NULL,0,avgPeriod,0,avgType,pr_haclose,i);

iCustomMa(avgType,iMA(NULL,0,1,0,MODE_SMA,pr_haclose,i),avgPeriod,i,0);
uyarıları döndürür.
Özel fiyat alma özelliğini kullanmanız gerekir (fiyatı almak için iMA() işlevini kullanmak yerine). En son sürümlerin bazılarında getPrice() işlevini elde edebilirsiniz, ancak her durumda şöyle görünür:
enum enPrices
{
   pr_close,       // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,         // Low
   pr_median,     // Median
   pr_typical,     // Typical
   pr_weighted,   // Weighted
   pr_average,     // Average (high+low+open+close)/4
   pr_medianb,     // Average median body (open+close)/2
   pr_tbiased,     // Trend biased price
   pr_tbiased2,   // Trend biased (extreme) price
   pr_haclose,     // Heiken ashi close
   pr_haopen ,     // Heiken ashi open
   pr_hahigh,     // Heiken ashi high
   pr_halow,       // Heiken ashi low
   pr_hamedian,   // Heiken ashi median
   pr_hatypical,   // Heiken ashi typical
   pr_haweighted, // Heiken ashi weighted
   pr_haaverage,   // Heiken ashi average
   pr_hamedianb,   // Heiken ashi median body
   pr_hatbiased,   // Heiken ashi trend biased price
   pr_hatbiased2   // Heiken ashi trend biased (extreme) price
};

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
//

#define priceInstances 1
double workHa[][priceInstances* 4 ];
double getPrice( int tprice, const double & open[], const double & close[], const double & high[], const double & low[], int i, int instanceNo= 0 )
{
   if (tprice>=pr_haclose)
   {
       if ( ArrayRange (workHa, 0 )!= Bars ) ArrayResize (workHa, Bars ); instanceNo*= 4 ;
         int r = Bars -i- 1 ;
        
         //
         //
         //
         //
         //
        
         double haOpen;
         if (r> 0 )
                haOpen  = (workHa[r- 1 ][instanceNo+ 2 ] + workHa[r- 1 ][instanceNo+ 3 ])/ 2.0 ;
         else    haOpen  = (open[i]+close[i])/ 2 ;
         double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0 ;
         double haHigh  = MathMax (high[i], MathMax (haOpen,haClose));
         double haLow   = MathMin (low[i] , MathMin (haOpen,haClose));

         if (haOpen  <haClose) { workHa[r][instanceNo+ 0 ] = haLow;  workHa[r][instanceNo+ 1 ] = haHigh; }
         else                  { workHa[r][instanceNo+ 0 ] = haHigh; workHa[r][instanceNo+ 1 ] = haLow;  }
                                workHa[r][instanceNo+ 2 ] = haOpen;
                                workHa[r][instanceNo+ 3 ] = haClose;
         //
         //
         //
         //
         //
        
         switch (tprice)
         {
             case pr_haclose:     return (haClose);
             case pr_haopen:       return (haOpen);
             case pr_hahigh:       return (haHigh);
             case pr_halow:       return (haLow);
             case pr_hamedian:     return ((haHigh+haLow)/ 2.0 );
             case pr_hamedianb:   return ((haOpen+haClose)/ 2.0 );
             case pr_hatypical:   return ((haHigh+haLow+haClose)/ 3.0 );
             case pr_haweighted:   return ((haHigh+haLow+haClose+haClose)/ 4.0 );
             case pr_haaverage:   return ((haHigh+haLow+haClose+haOpen)/ 4.0 );
             case pr_hatbiased:
               if (haClose>haOpen)
                     return ((haHigh+haClose)/ 2.0 );
               else    return ((haLow+haClose)/ 2.0 );        
             case pr_hatbiased2:
               if (haClose>haOpen)   return (haHigh);
               if (haClose<haOpen)   return (haLow);
                                     return (haClose);        
         }
   }
  
   //
   //
   //
   //
   //
  
   switch (tprice)
   {
       case pr_close:     return (close[i]);
       case pr_open:       return (open[i]);
       case pr_high:       return (high[i]);
       case pr_low:       return (low[i]);
       case pr_median:     return ((high[i]+low[i])/ 2.0 );
       case pr_medianb:   return ((open[i]+close[i])/ 2.0 );
       case pr_typical:   return ((high[i]+low[i]+close[i])/ 3.0 );
       case pr_weighted:   return ((high[i]+low[i]+close[i]+close[i])/ 4.0 );
       case pr_average:   return ((high[i]+low[i]+close[i]+open[i])/ 4.0 );
       case pr_tbiased:  
               if (close[i]>open[i])
                     return ((high[i]+close[i])/ 2.0 );
               else    return ((low[i]+close[i])/ 2.0 );        
       case pr_tbiased2:  
               if (close[i]>open[i]) return (high[i]);
               if (close[i]<open[i]) return (low[i]);
                                     return (close[i]);        
   }
   return ( 0 );
}  
 

Merhaba Mladen,

Her farklı renk için tampon ekleyebilir misiniz?

Teşekkürler!

Dosyalar:
 
mladen :

Özel fiyat alma özelliğini kullanmanız gerekir (fiyatı almak için iMA() işlevini kullanmak yerine). En son sürümlerin bazılarında getPrice() işlevini alabilirsiniz.

yani formül
iCustomMa(avgType,getPrice(pr_haclose,pr_open,pr_close,pr_high,pr_low,i),avgPeriod,i,0);
doğru olur mu?
 
wojtekpaul :
yani formül
iCustomMa(avgType,getPrice(pr_haclose,pr_open,pr_close,pr_high,pr_low,i),avgPeriod,i,0);
doğru olur mu?
Numara

Bunun gibi :

iCustomMa(avgType,getPrice(pr_haclose, Open , Close , High , Low ,i),avgPeriod,i, 0 );
 
mladen :
Bunun gibi :

... Open , Close , High , Low ,...

Bu dört miktar

   pr_close,       // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,         // Low

?
 
wojtekpaul :

Bu dört miktar

   pr_close,       // Close
   pr_open,       // Open
   pr_high,       // High
   pr_low,         // Low

?
Hayır. İşleve bakarsanız, 4 parametre açık, kapalı, yüksek ve düşük değerleri içeren 4 diziye atıfta bulunur. Fonksiyonda beklenen diziler yerine sabit tamsayı değerleri kullanmaya çalışıyorsunuz. Lütfen yayınlandığı gibi kullanın ve sonra işe yarayacaktır
 

Tamam, yardımın için çok teşekkür ederim! :)

(31 Ocak'tan sonra ne yapacağız?) :(

 
Sevgili Mladen,

Bunu mt4 göstergesi için kodlayabilir misiniz .... Amibroker AFL kodlamasında ... Çok teşekkürler



_SECTION_BEGIN("Piyasa Trendi");
SetChartOptions(0,chartShowArrows|chartShowDates);

işlev tahmin Döngüsü( arg1, arg2 )
{
yerel var1, var2;

sonuç = arg1 + arg2;

dönüş sonucu;
}

tahmin=0;
P = ParamField("Fiyat alanı",-1);
Noktalar = Param("Dönemler", 15, 2, 300, 1, 10);
Tahmin = Tahmin Döngüsü(C,Periyotlar);

Satın Al = Tahmin>Ref(Tahmin,-1);
Sat = Tahmin<Ref(Tahmin,-1);

Satın Al = ExRem(Satın Al, Sat);
Sat = ExRem(Sat, Satın Al);

Plot(Tahmin,"Tahmin",colorWhite,styleLine | styleThick);

PlotShapes(IIf(Satın al, shapeUpArrow, shapeNone),colorGreen, 0,L, Offset=-5);
PlotShapes(IIf(Sat, shapeDownArrow, shapeNone),colorRed, 0,H, Offset=-5);

_SECTION_END();