Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 493

 
INGFX :

Vladimir, sabrın ve yardımın için teşekkürler!
Gerçekten kodda bir hata yaptı ...
Gelecekte daha dikkatli olacağım.

Yaşasın! Artık huzur içinde uyuyabilirim.
 

Tünaydın.

Lütfen bana sorunu nasıl çözeceğimi söyle. SendFTP() işlevini kullanarak bir dosya göndermeye çalışırken, 4014 - Sistem işlevinin çağrılmasına izin verilmiyor hatası oluşuyor.

FTP ayarları ile her şey yolundadır - raporlar ve bir test dosyası gönderilir.

Şimdiden teşekkürler.

 
Nikita Solodko :

Tünaydın.

Lütfen bana sorunu nasıl çözeceğimi söyle. SendFTP() işlevini kullanarak bir dosya göndermeye çalışırken, 4014 hatası - Sistem işlevinin çağrılmasına izin verilmiyor.

FTP ayarları ile her şey yolundadır - raporlar ve bir test dosyası gönderilir.

Şimdiden teşekkürler.

Göstergeden göndermeye çalışma şansınız var mı?
 
Karputov Vladimir :
Bir göstergeden göndermeye çalışma şansınız var mı?
Yanlışlıkla, evet ... Neden olmasın?
 
Nikita Solodko :
Yanlışlıkla, evet ... Neden olmasın?
İmkansız çünkü ftp üzerinden ağ gecikmeleri olması durumunda gösterge tüm terminali yavaşlatabilir. Ama danışmandan - lütfen.
 
Karputov Vladimir :
İmkansız çünkü ftp üzerinden ağ gecikmeleri olması durumunda gösterge tüm terminali yavaşlatabilir. Ama danışmandan - lütfen.
Teşekkür ederim.
 

Herkese selam. İlk Uzman Danışmanımı yazıyorum ve hiçbir şekilde üstesinden gelemediğim bir sorunla karşılaştım.

 void OnTick ()
{
 datetime EaStartTime = StringToTime (StartTime);   // время начала работы советника
 datetime EaEndTime = StringToTime (EndTime);       // время окончания работы советника
 datetime CurrTime = TimeCurrent ();               // это если нужно взять время терминала
 if (CurrTime < EaStartTime || CurrTime >= EaEndTime)
   return ;                                         // если еще не время торговать - выход
{
 PriceLow= iEnvelopes ( NULL , 0 ,MA_Period,MA_Shift,MA_Method,Applied_Price,Deviation, 0 , 1 );
 PriceHigh = iEnvelopes ( NULL , 0 ,MA_Period,MA_Shift,MA_Method,Applied_Price,Deviation, 1 , 1 );
 MacdCurrent= iMACD ( NULL , 0 ,InpFastEMA,InpSlowEMA,InpSignalSMA, PRICE_CLOSE ,MODE_MAIN, 0 );
 SignalCurrent= iMACD ( NULL , 0 ,InpFastEMA,InpSlowEMA,InpSignalSMA, PRICE_CLOSE ,MODE_SIGNAL, 0 );
 SignalMAPrevious= iMA ( NULL , 0 ,InpMAPeriod,InpMAShift,InpMAMethod, PRICE_MEDIAN , 1 );
 SignalMAThis= iMA ( NULL , 0 ,InpMAPeriod,InpMAShift,InpMAMethod, PRICE_MEDIAN , 0 );
 PriceCurrentOpen=iOpen( NULL , 0 , 1 );
 PriceCurrentClose=iClose( NULL , 0 , 1 );
   if (CountTrades()== 0 ) CheckForOpen();
   else
  {
   if (CountTrades()<max_trades) CheckForOpen();
  }
 }
}  
void CheckForOpen()
{
//-----Ставим ордер на покупку.
 if (PriceCurrentOpen<PriceLow&&PriceCurrentOpen<PriceCurrentClose&&SignalCurrent<MacdCurrent&&SignalMAPrevious<SignalMAThis)
 {
  ticket= OrderSend ( NULL ,OP_BUY,Lots,Ask,slippage, 0 , 0 , "5" ,magic, 0 ,Blue);
   if (ticket> 0 )
     return ; 
 }
//-----Ставим ордер на продажу.
 if (PriceCurrentOpen>PriceLow&&PriceCurrentOpen>PriceCurrentClose&&SignalCurrent>MacdCurrent&&SignalMAPrevious>SignalMAThis)
 {
  ticket= OrderSend ( NULL ,OP_SELL,Lots,Bid,slippage, 0 , 0 , "5" ,magic, 0 ,Red);
   if (ticket> 0 )
     return ; 
 }
}

Zarflar kanalı dışında bir önceki çubuk açıldıysa al-sat sinyali verilmeli , kanaldan yüksekse sat, düşükse al.Aslında emirler danışman istediği zaman verilir. koşullar sağlanmışsa sat-satar, al-al sinyali verirse bu nasıl düzeltilir?

Ve her saniye bir kerede izin verilen tüm sipariş sayısını değil, çubuk başına bir sipariş almasını nasıl sağlayabilirim?

 
Nickolay72 :

Herkese selam. İlk Uzman Danışmanımı yazıyorum ve hiçbir şekilde üstesinden gelemediğim bir sorunla karşılaştım.

Zarflar kanalı dışında bir önceki çubuk açıldıysa al-sat sinyali verilmeli , kanaldan yüksekse sat, düşükse al.Aslında emirler danışman istediği zaman verilir. koşullar sağlanmışsa sat-satar, al-al sinyali verirse bu nasıl düzeltilir?

Ve her saniye bir kerede izin verilen tümsipariş sayısını değil, çubuk başına bir sipariş almasını nasıl sağlayabilirim?

Güzel gün. Emir göndermeden önce, açık pozisyon olup olmadığını kontrol edin, varsa açık emir göndermeyin, aksi halde gönderin. Kodunuzu anladığım kadarıyla CountTrades() işlevi bunu sizin için yapıyor ancak kodu göstermiyorsunuz. Bu yüzden bu fonksiyon tarafından döndürülen değerleri kontrol edin.
 
Prensipte emir sayısı ikincil bir hedeftir, düne kadar her seferinde bir emir açtım ve bir emir varken bir sonraki açılmadı ve danışmanı siparişe göre emirleri açmaya zorlamak , bir önceki çubuk açıldığında yukarıda (aşağıda) şartlara göre açılmayan kanal?
Dosyalar:
Zmey.mq4  5 kb
 
Nickolay72 :
Prensipte sipariş sayısı ikincil bir hedeftir, düne kadar her seferinde bir sipariş açtım ve bir sipariş varken bir sonraki açılmadı. Ve danışmanı sıraya göre emirleri açmaya nasıl zorlayabilirim - önceki çubuk kanalın üstünde (aşağıda) açıldığında? Şimdi çoğu sipariş, şartlara göre açılmadığı için kârsız.
1 numaralı çubuğun Açıklığı kanalın üstünde/altındaysa.