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

 

Merhaba! Kodda soru. Bu olay her yeni bağımlı çubuğunda görünür. TF - olması gerektiği gibi mi yoksa kodda bir hata mı var?

 //+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   ResetLastError ();   
   datetime Arr[];
   if ( CopyTime ( NULL , PERIOD_M5 , 10 , 1 ,Arr)<= 0 ) 
   {
       int error= GetLastError ();
       Print ( "Ошибка 4401 возникает на новом баре раб.ТФ, который должен быть ниже М5 в данном случае " ,error);
       Print ( "Почему запрошенная история не найдена ведь я обращаюсь всего лишь к 10-му бару старшего ТФ М5" );
       return ( 0 );
      }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
novichok2018 :

Igor Kim ayrıca, belirli koşullarıma uyum sağlamam oldukça zor olan, konum varlığı bayrağını döndüren bir bool ExistPositions() işlevine sahiptir. Ama bence tarihte de sınanmayacaktır.

Kimsenin gerçek hayatta test edilmiş bir kodu yoksa, o zaman bilimsel bir dürtme ile deneyeceğim. Teşekkür ederim.

Yine bilgim yeterli değil! iOpen(NULL,0,0) içindeki NULL'u EURUSD ile değiştirmek, bildirilmemiş tanımlayıcı ve 'sayı'dan 'dize' hatalarına örtük dönüştürme üretir. Aynısı OrderSend (Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); Nasıl düzeltilir?

 
novichok2018 :

Yine bilgim yeterli değil! iOpen(NULL,0,0) içindeki NULL'u EURUSD ile değiştirmek, bildirilmemiş tanımlayıcı ve 'sayı'dan 'dize' hatalarına örtük dönüştürme üretir. Aynısı OrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); içindeki Symbol() öğesini değiştirirken de geçerlidir. Nasıl düzeltilir?

Tırnak işaretleri koymayı unuttun mu?

 
novichok2018 :

Evet, bir şekilde böyle hayal etmiştim, ancak tarihin düşüşünü kontrol edemiyorum, çünkü avroda bir pozisyonun açılması sterlin koşuluna göre gerçekleşmelidir ve avro koduna yansıtılmamıştır, ancak tarih euro üzerinde gösterilir. Dolayısıyla kararın doğruluğu konusundaki belirsizlik.

O zaman MQL5'i öğrenmeniz ve çoklu para birimi seçeneğini test etmeniz gerekecek.

 
Alexey Viktorov :

O zaman MQL5'i öğrenmeniz ve çoklu para birimi seçeneğini test etmeniz gerekecek.

Hayır, teşekkürler! Kendime MKL4 veya MKL5'i tam olarak inceleme görevi vermiyorum. Amacım, açık pozisyonların %95'inde artı ve ekside çalışan en basit Uzman Danışmanları KENDİM İÇİN yazmak ve pozisyonu zarara kapatmaya karar vermeden önce tüm bakiyeyi boşaltmasın. Bu robotların birçoğu bir demo üzerinde çalışıyor, ancak her seferinde orada test etmek istediğim yeni fikirler ortaya çıkıyor. Ve kod ne kadar basit olursa o kadar iyi olduğuna inandığım için, dilin vahşi dünyasına gerçekten girmek istemiyorum. Neyse, şimdilik! Dilin kapsamlı bir çalışması, yalnızca özel uzmanlar IMHO yazarak para kazanmak amacıyla gerekçelendirilir.

Alıntı için teşekkürler. Daha sonra denemedim.

 
novichok2018 :

....... Amacım, açılan pozisyonların %95'inde artı çalışan en basit Uzman Danışmanları ve açık pozisyonlarda kapatmaya karar verene kadar tüm bakiyeyi boşaltmaması için asılı bir eksi KENDİM İÇİN yazmaktır. bir kayıp. .....

Dünyadaki tüccarların %95'inin hayalini anlattınız. Ancak aynı zamanda dilin imlası ve sözdizimi ile bile uğraşmak istemezsiniz. Kıskanılacak bir özgüven, bunu isterim. tabii ki IMHO.

 
novichok2018 :

Hayır, teşekkürler! Kendime MKL4 veya MKL5'i kapsamlı bir şekilde inceleme görevi vermiyorum. Amacım, açık pozisyonların %95'inde artı ve ekside çalışan en basit Uzman Danışmanları KENDİM İÇİN yazmak ve pozisyonu zarara kapatmaya karar vermeden önce tüm bakiyeyi boşaltmasın. Bu robotların birçoğu bir demo üzerinde çalışıyor, ancak her seferinde orada test etmek istediğim yeni fikirler ortaya çıkıyor. Ve kod ne kadar basit olursa o kadar iyi olduğuna inandığım için, dilin vahşi dünyasına gerçekten girmek istemiyorum. Neyse, şimdilik! Dilin kapsamlı bir çalışması, yalnızca özel uzmanlar IMHO yazarak para kazanmak amacıyla gerekçelendirilir.

Alıntı için teşekkürler. Daha sonra denemedim.

MQL5, MQL4'ten daha karmaşık değildir. Ve bazı durumlarda daha da kolay ve hızlı çalışır. OOP, yeni başlayanlar için sadece bir korku hikayesidir. Bahsettiğiniz basit bir Expert Advisor yazmak için OOP'yi hiç anlamanıza gerek yok.

Yazmanın ne kadar zor olduğunu söyle

 // MQL4

OrderSend ( _Symbol , OP_BUY, lot, price, Slip, sl, tp, "" , Magic);
 // MQL5

#include <Trade\\Trade.mqh>
CTrade trade;

trade.Buy(lot);
 
Sergey Voytsekhovsky :

Dünyadaki tüccarların %95'inin hayalini anlattınız. Ancak aynı zamanda dilin imlası ve sözdizimi ile bile uğraşmak istemezsiniz. Kıskanılacak bir özgüven, bunu isterim. tabii ki IMHO.

"Yazım" derken ne demek istediğini anlamadım ama bunun bir önemi yok çünkü. robotlarım hala çalışıyor ve tam olarak tarif ettiğim gibi.

 
Alexey Viktorov :

MQL5, MQL4'ten daha karmaşık değildir. Ve bazı durumlarda daha da kolay ve hızlı çalışır. OOP, yeni başlayanlar için sadece bir korku hikayesidir. Bahsettiğiniz basit bir Expert Advisor yazmak için OOP'yi hiç anlamanıza gerek yok.

Yazmanın ne kadar zor olduğunu söyle

KORKU! Beni öldürdün. İkinci seçeneği tamamen mekanik olarak yazmak hiç de zor olmasa da hiçbir şey anlamadım))).

 

Merhaba, MT4 ne zamana kadar var olacak? bir iki yıl mı?

Soru için üzgünüm, biraz konu dışı (ama benim için çok önemli).