Kodlama yardımı - sayfa 777

 
Algo_W :

Bunun için IMaOnArray'in nasıl uygulanacağından emin değilim. Bence çözüm bu mu? Histogram için ADX'in hareketli ortalamasını almama yardımcı olabilecek var mı?

Teşekkür ederim

 #property indicator_type1 DRAW_LINE

#property indicator_type1 DRAW_LINE
for ( int i = limit- 1 ; i >= 0 ; i--)
   Buffer1[i] = iADX ( NULL , PERIOD_CURRENT , 14 , PRICE_CLOSE , MODE_MAIN , i);
   
for (i = limit- 1 ; i >= 0 ; i--)   
   Buffer2[i] = iMAOnArray (Buffer1, 0 , 5 , 0 , MODE_SMA , i);
 
Naguisa Unada :

Merhaba Naguisa!

iyiliğine güveniyorum?

mtf BB indikatörünü ince ayar yaptığınız için teşekkür etmek ve teşekkür etmek istiyorum. bir cazibe gibi çalıştığını söyleyebilirim.


Naguisa! Sadece daha fazla sorgulamak için, bu gösterge, Fibonacci sayıları veya herhangi bir tek ve çift zaman çerçeveleri gibi farklı özel zaman şöhretlerinin söylenebileceği ve mutlaka yalnızca MT4 için olanlar değil, değiştirilebilir olabilir mi? Bu mümkün mü, lütfen?

 

kodlama yardım lütfen

nasıl kodlayabilirim

bir ma bitiş noktasına reklam sağ ışın.?

 
guner :

kodlama yardım lütfen

nasıl kodlayabilirim

bir ma bitiş noktasına reklam sağ ışın.?

Çubuk 0'da seçtiğiniz MA'nın değerine eşit FİYAT1 ve FİYAT2 değerleriyle trend nesnesini çizin ve TIME1 çubuk 0'ın zamanına eşit, TIME2 ise gelecekte bir yerde. Her tikte MA'yı yeniden hesaplayın ve FİYAT1 & FİYAT2'yi buna göre ayarlayın ve her yeni çubukta yeni TIME1 ayarlayın.

 

Herkese selam,


Mark Whistler'ın "Volatilite aydınlatılmış" kitabını inceliyorum ve onun oluşturduğu göstergeleri, özellikle WAVE-PM'yi daha derine inmek istiyorum.
Whistler mq4 kodunu kitapta yayınladı ve bir kopyası da burada http://fxcodebase.com/code/viewtopic.php?f=38&t=64011

Ancak niyetim, ana grafik platformum olduğu için göstergeyi ticaret görünümüne taşımak, bazı temel komut dosyalarını biliyorum ama orijinal komut dosyasının C benzeri kodunu okumakta gerçekten zorlanıyorum
Birisi koda bir göz atıp bana kabaca ne yaptığının mantığını söyleyebilir mi?

Whistler kitabında gösterge hakkında fazla bir şey söylemiyor, sadece " daha geniş dağılım içindeki kısa vadeli dağılımın 'sıkıştırmasını' görsel olarak tanımlıyor. "



Anladığım kadarıyla osilatör bir bollinger bandının üst ve alt bantları arasındaki farkı temsil ediyor, daha sonra değer 0-1 aralığında normalleştirildi ve zaman boyunca çizildi

Kodda iki osilatörün yaratıldığını görüyorum (ShortBandsPeriod ve LongBandsPeriod) ama sonra kendimi for döngülerine kaptırıyorum... Sadece bazı matematik hesaplamaları olduğunu görebiliyorum (bir kare, bir üs kuvveti ve bir teğet?) ama ne yazık ki neden ve nasıl yapıldığını anlayamıyorum

 .
.
.
for (i=limit; i>= 0 ; i--){
   
             
                avg= iMA ( NULL , 0 ,ShortBandsPeriod, 0 , MODE_SMA , PRICE_CLOSE ,i+ShortBandsShift);
                
                sum= 0 ;
                
                 for (j=ShortBandsPeriod- 1 ; j>= 0 ; j--){
                 temp = Close [i+j] - avg;
                 sum = sum + temp * temp;
                }
         
                ShortDev[i]= ShortBandsDeviations * MathSqrt (sum / ShortBandsPeriod);
        ShortDev1[i] = MathPow ((ShortDev[i] / Point ), 2 );
                
                
                     //if  ( i < limit - Chars)
                         //{
         
                        
                          temp= 0 ;
                                 for (j=Chars- 1 ; j>= 0 ; j--){                             
                                 temp = temp + ShortDev1[i+j];
                                }
                        
            temp = MathSqrt (temp / Chars) * Point ;
             if (temp != 0 )
                        {
                temp = ShortDev[i] / temp;
            }

                                
         
                        ShortOscillator[i] = MathTanh (temp);
                                
                   //}
   }
.
.
.


Bu yüzden herhangi bir yardım, öneri veya ipucu takdir edilmektedir, teşekkürler!

Dosyalar:
WAVE-PM.mq4  5 kb
 

Merhaba arkadaşlar, bazı kodlayıcılar bu balıkçı göstergesini değiştirmeye yardımcı olabilir.

evet, çok eski bir gösterge ve yeniden boyama, ancak bazı değerli bilgileri var. Her mum kapandığında göstergenin durumunu analiz etmek istiyorum.

Yeniden boyama işlevini değiştirmiyoruz, sadece otomatik yenileme ekleyin. Göstergeyi yenileyin ve her mum kapandığında durumu kaydedin, ancak bir sonraki mum başladığında kendini yenilemeyin.

kötü ingilizcem için özür dilerim. şimdiden teşekkürler.

Dosyalar:
fisher1.mq4  3 kb
 

Merhaba millet!

hepinize güveniyorum?

Bu göstergeleri dinamik bölge forumunda buldum, ancak orada çalışmıyor ve herhangi bir cömert kodlayıcı bunları düzeltebilirse, onları çok takdir ediyorum.

Onları buraya ekliyorum,

Şimdiden içten teşekkürlerimi sunarım.

 
Mkurugenzi :

Merhaba millet!

hepinize güveniyorum?

Bu göstergeleri dinamik bölge forumunda buldum, ancak orada çalışmıyor ve herhangi bir cömert kodlayıcı bunları düzeltebilirse, onları çok takdir ediyorum.

Onları buraya ekliyorum,

Şimdiden içten takdirlerimi sunarım.

@Naguisa Unada


iyiliğine güveniyorum?


Lütfen, yukarıdaki son gönderiyi görebilecek ve göstergelerin tümü olmasa da en azından bazılarını rötuşlayabilecek bir konumda olup olmadığınızı görebilecek durumda mısınız?


çabanız, zamanınız ve kaynağınız önceden takdir edilmektedir.

 

Hey kodlayıcılar! Birisi bu EA'yı değiştirmeme yardımcı olabilir mi?

Bu, x dakika/saat süren x dakikada bir Limit emirlerini veren basit bir al düşük sat yüksek EA'dır.


Onu geliştireceğini düşündüğüm şey, ona bir filtre eklemek. Stokastik veya RSI diyelim..

Yani stokastik 40'tan düşük olduğunda = satın alma limitlerini başlatın

Ve stokastik 60'tan yüksek olduğunda = satış limitlerini başlatın

ve arada hiçbir şey başlatmıyor



Mümkün mü? Şimdiden teşekkürler.

EA'yı ekliyorum


EA'yı uzun kenar veya kısa kenar çalıştırmaya karar vererek iyi sonuçlarla "manuel" kullandım.

Dosyalar:
WIDE_HARD.mq4  8 kb
EA-FXblue.png  68 kb
 
Merhaba. Kötü ingilizcem için hemen özür dilerim. Zor değilse, lütfen danışman koduyla yardım edin. Yani pozisyon açma ve kapama durumlarını düzeltmek için. Robot hakkında biraz, robot zikzak göstergesinin dönüşünde pozisyonları açar ve kapatır.
Bu sistemin MT4'te zig zag göstergesi olup olmadığına bakılmaksızın çalışması gerekiyor.
 //+------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01 ; //
extern int   TakeProfit= 60 ; //
extern int   StopLoss= 100 ; //
extern int Magic= 111111111 ;
extern int Slippage= 3 ;
extern int ExtDepth= 12 ;
extern int ExtDeviation= 5 ;
extern int ExtBackstep= 3 ;

datetime Today= 0 ;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit ()
  {
   if ( Digits == 3 || Digits == 5 )
     {
      TakeProfit *= 10 ;
      StopLoss   *= 10 ;
      Slippage   *= 10 ;
     }
   return ( INIT_SUCCEEDED );
  }
//±-----------------------------------------------------------------+
int deinit() { return ( 0 );}
//±-----------------------------------------------------------------+
int start()
  {

   if (DayOfWeek()== 0 || DayOfWeek()== 6 ) return ( 0 ); // в выходные не работаем
   if (!IsTradeAllowed()) return ( 0 ); // пропустим тик если терминал занят
                                     //:проверим открытие новой свечи
   if (Time[ 0 ]==Today) return ( 0 );
   Today=Time[ 0 ];
//:получим значение ZigZag на предыдущей свече
   double lZZ= iCustom ( NULL , 0 , "ZigZag" ,ExtDepth,ExtDeviation,ExtBackstep, 0 , 1 );
   double lZZ_= iCustom ( NULL , 0 , "ZigZag" ,ExtDepth,ExtDeviation,ExtBackstep, 0 , 0 );
// открытие продаж

   if (CountSell()== 0 && lZZ==Low[ 0 ] && lZZ_==Low[ 0 ])
     {
      SL = NormalizeDouble (Bid+StopLoss* Point , Digits );
      TP = NormalizeDouble (Bid-TakeProfit* Point , Digits );
        {

         ticket= OrderSend ( Symbol (),OP_SELL,lots,Bid,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Red);
         if (ticket> 0 )
           {
             // закрытие продаж
     //        if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
                 {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
                    {
                     if (OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                         if (OrderClose(OrderTicket(),OrderLots(),Ask,Slippage, clrNONE ))
                           Print ( "Ошибка открытия ордера на покупку !" );
                    }
                 }
              }
           }
        }
     }
// открытие покупок

 //  if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble (Ask+TakeProfit* Point , Digits );
      SL = NormalizeDouble (Ask-StopLoss* Point , Digits );
        {
         ticket= OrderSend ( Symbol (),OP_BUY,lots,Ask,Slippage,SL,TP, "macd sample" ,Magic, 0 ,Green);
         if (ticket> 0 )
           {
             // закрытие покупок    
       //     if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
                 {
                   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
                    {
                     if (OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                         if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage, clrNONE ))
                           Print ( "Ошибка открытия ордера на продажу!" );
                    }
                 }
              }
           }
        }
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
int CountSell() //проверкна открытие ордеров на продажу
  {
   int count= 0 ;

   for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
     {
       if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
             if (OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
int CountBuy() // проверкна открытие ордеров на покупку
  {
   int count= 0 ;

   for ( int trade= OrdersTotal ()- 1 ; trade>= 0 ; trade--)
     {
       if ( OrderSelect (trade,SELECT_BY_POS,MODE_TRADES))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
             if (OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+

açılış satışları

 if (CountSell()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])

kapanış satışları

       if (CountSell()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
              

açılış satın al

 if (CountBuy()== 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 0 , 1 )==High[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 0 , 1 )==High[ 0 ])
     

kapanış satın alma

 if (CountBuy()> 0 && iCustom ( NULL , 0 , "ZigZag_Rosh" , 12 , 5 , 3 , 1 , 0 )==Low[ 0 ] && iCustom ( NULL , 0 , "ZigZag_Rosh" , 48 , 20 , 12 , 1 , 0 )==Low[ 0 ])
              
Neden: