MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1770

 
MakarFX # :

Ama neden bu diziye ihtiyacınız var, hala anlamıyorum ...

 int TradeSignal() 
  {
   int limit, i, sig=- 1 ;
   double Ma_curr, Ma_prev, value;
   limit=MaPeriod* 3 ;
   for (i=limit;i>= 0 ;i--)
     {
      Ma_curr= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice,i);
      Ma_prev= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice,i+ 1 );
      value=Ma_curr-Ma_prev;
       if (value> 0 ) sig= 0 ;
       if (value< 0 ) sig= 1 ;
     }
   return (sig);
  }

İşlev onsuz çalışacaktır.

 
Mihail Matkovskij # :

Ama neden bu diziye ihtiyacınız var, hala anlamıyorum ...

İşlev onsuz çalışacaktır.

Ve döngü burada işe yaramaz

 int TradeSignal() 
  {
   int sig=- 1 ;
   double Ma_curr, Ma_prev, value;

   Ma_curr= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice, 0 );
   Ma_prev= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice, 1 );
   value=Ma_curr-Ma_prev;
   if (value> 0 ) sig= 0 ;
   if (value< 0 ) sig= 1 ;

   return (sig);
  }
 
Mihail Matkovskij # :

Ve döngü burada işe yaramaz

Bunu yaptım ama dizinin neden çalışmadığını anlamak istedim.

ve bu arada

 ArraySize (Buffer,limit);

Yardım etmedi (


'ArraySize' - yanlış parametre sayısı

sınırsız sabit

dizi '_exp.mq4' içinde aralık dışında (267,17)

 
MakarFX # :


ArraySize değil, ArrayResize.

 
Yurij Kozhevnikov # :

ArraySize değil, ArrayResize.

dizi aralık dışında
 
MakarFX # :

Bunu yaptım ama dizinin neden çalışmadığını anlamak istedim.

ve bu arada

Yardım etmedi (


'ArraySize' - yanlış parametre sayısı

sınırsız sabit

dizi '_exp.mq4' içinde aralık dışında (267,17)


Sonra hemen fark ettim ve düzelttim. Ve muhtemelen düzeltilmemiş kodu kopyaladınız.

Ve dizinin neden çalışmadığını bilmek istiyorsanız, vb. , bkz: Dizi İşlemleri .

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.28
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Mihail Matkovskij # :


Sonra hemen fark ettim ve düzelttim. Ve muhtemelen düzeltilmemiş kodu kopyaladınız.
Teşekkürler, işe yaradı!
 
MakarFX # :
Teşekkürler, işe yaradı!

Rica ederim! Mesaj eklendi...

 
//+------------------------------------------- --------------------+
//| hareket ettirerek test edin.mq4 |
///+---------------------------------------------- --------------------+
#property telif hakkı "Telif Hakkı 2021, MetaQuotes Software Corp."
#özellik bağlantısı " https://www.mql5.com "
#özellik sürümü "1.00"
#mülkiyet katı
extern string Moving_Averages1= "gösterge parametreleri";
harici int MA_Period=13;
harici int MA_Shift=0;
harici int MA_Method=0;

harici int TakeProfit= 300;
harici int StopLoss= 50;
çift ma1,ma2,Lot,SL,TP;

iç;



//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{
dönüş(INIT_SUCCESSED);
}
//+------------------------------------------- --------------------+
//| Uzman başlatmasızlaştırma işlevi |
//+------------------------------------------- --------------------+
geçersiz OnDeinit(const int nedeni)
{
}
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
if(!OllCount()==0)
{
geçiş(SiparişTürü())
{
vaka OP_BUY
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0);
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1);
if((ma1-ma2)>0)
{
dönüş;
}başka
SL=NormalizeÇift(Teklif+StopLoss*Puan,5);
TP=NormalizeÇift(Teklif Al-Kar*Puan,5);
if(OrderClose(OrderTicket(),OrderLots(),Ask,3,Siyah))
if(OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Kırmızı))
dönüş;
vaka OP_SELL
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0);
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1);
if((ma1-ma2)<0)
{
dönüş;
}
başka
SL=NormalizeÇift(Ask-StopLoss*Puan,5);
TP=NormalizeÇift(İste+Kar Al*Puan,5);
if(OrderClose(OrderTicket(),OrderLots(),Teklif,3,Kırmızı))
if(OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,0,"",0,0,Siyah))
dönüş;
}
}
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0);
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1);
if((ma1-ma2)<0)
{
SL=NormalizeÇift(Teklif+StopLoss*Puan,5);
TP=NormalizeÇift(Teklif Al-Kar*Puan,5);
res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red);
if(res<0)
{
Print("satış emri açma hatası");
}
}
başka
SL=NormalizeÇift(Ask-StopLoss*Puan,5);
TP=NormalizeÇift(İste+Kar Al*Puan,5);
if(OrderSend(Symbol(),OP_BUY,Lots,Sor,3,0,0,"",0,0,Mavi))
dönüş;
}
//+------------------------------------------- --------------------+
int OllCount()
{
int sayı=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
say++;
}
}
dönüş(sayım);
}
//+------------------------------------------- --------------------+
//+---/| Telif hakkı 2021, MetaQuotes Yazılım A.Ş. |
-------------------------------------------------- -------------+

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

MA üzerine kendi danışmanımı yazmaya çalıştım, her şeyi örneklere göre yaptım gibi görünüyor ama hata veriyor.Neyin yanlış olduğunu anlamıyorum. eğer söyleyebilirsen lütfen bana söyle.

'ma1' - bazı operatörler bekleniyor hareket ettirerek test edin.mq4 47 21

'=' - ':' iki nokta üst üste işareti bekleniyor hareket ettirerek test edin.mq4 47 24

'=' - işlenen bekleniyor hareket ettirerek test edin.mq4 47 24

'ma1' - bazı operatörler bekleniyor hareket ettirerek test edin.mq4 60 on beş

'=' - ':' iki nokta üst üste işareti bekleniyor hareket ettirerek test edin.mq4 60 on sekiz

'=' - işlenen bekleniyor hareket ettirerek test edin.mq4 60 on sekiz


 
Sanjakotik78 # :


Başlangıçta siparişlerle çalışmak için yanlış bir mantığa sahipsiniz. MA konusunda basit bir uzman bulun (örneğin, CodeBase'de) ve onu kullanın. Ya da beğeninize göre özelleştirebilirsiniz. Bir bütün olarak kodunuzla ilgili olarak, orada her şey yanlış. Kodlamaya daha fazla dikkat edin. Basit başlayın. Veya dediğim gibi hazır bir örnek bulun.

Üstteki özel düğmeyi kullanarak kod parçacıkları ekleyin: