Etkili bir danışman yazmak - sayfa 6

 
Vladimir Baskakov # :
Bensiz 0 olacağını zaten biliyorsun, öyle olmasaydı bu dalı oluşturmazdın

Ve ne, başka sebep olamaz mı?

Kısacası, bu boş gevezelikten bıktım. Danışman konusu dışında bir diyalog yürüteceksiniz, yazılarınızı görmezden geleceğim.

Tahminleriniz ilginç değil çünkü ticaret robotunun etkinliğiyle zaten çelişiyorlar. Videom, kâr elde etmek için trend çizgisinin nasıl yönetileceğini gösteriyor. Öğrenemezseniz, kullanamazsınız. Bir müzik aleti çalmak gibi. Bir usta olarak aletin iyi olduğunu söylüyorum. Bunu biliyorum çünkü 15 yılı aşkın bir süredir forex programlama yapıyorum. Sana aracı verdim. Ustaca kullanabileceğiniz gerçeği değil.

Ve bir şey daha, videoda kullandığım araca ışın denmiyor, buna trend çizgisi deniyor. Işın, bu aracın istendiğinde kapatılabilen bir PARAMETREDİR.

Bu noktada. Artık asılsız tahminlere dokunmak istemiyorum.

 
Vitaly Murlenko # :

Ve ne, diğer nedenler olamaz mı?

Kısacası, bu boş gevezelikten bıktım. Danışman konusu dışında bir diyalog yürüteceksiniz, yazılarınızı görmezden geleceğim.

Tahminleriniz ilginç değil çünkü ticaret robotunun verimliliğiyle zaten çelişiyorlar. Videom, kâr elde etmek için trend çizgisinin nasıl yönetileceğini gösteriyor. Öğrenemezseniz, kullanamazsınız. Bir müzik aleti çalmak gibi. Bir usta olarak aletin iyi olduğunu söylüyorum. Bunu biliyorum çünkü 15 yılı aşkın bir süredir forex programlama yapıyorum. Sana aracı verdim. Ustaca kullanabileceğiniz gerçeği değil.

Ve bir şey daha, videoda kullandığım araca ışın denmiyor, buna trend çizgisi deniyor. Işın, bu aracın istendiğinde kapatılabilen bir PARAMETREDİR.

Bu noktada. Artık asılsız tahminlere dokunmak istemiyorum.

Devlet nerede?
Kırmızı mum ve mavi mum sayısını karşılaştırmak bir trend tanımı değildir.
 
Vladimir Baskakov # :
Devlet nerede?
Kırmızı mum ve mavi mum sayısını karşılaştırmak bir trend tanımı değildir.

Tamam, ama göstereceğim, ancak gerçek "savaş" koşullarında bir ara sonuç. İşte ekran görüntüsü:

Para dün saat 15'te girdi. Sıfır vardı (bunun için benim sözüme güvenmeniz gerekecek).

İşte devlet:

sekiz

dokuz

on

on bir

 
Bu durum analizlerinize yardımcı olacak mı?
 
Vitaly Murlenko # :
Bu durum analizlerinize yardımcı olacak mı?
İşte Devlet.
Bu arada, neden bir trend arama zahmetine girmeyin, eğer devam etmesi muhtemelen tersine döneceği gerçeğiyle 50/50 ise
 
Vitaly Murlenko # :

Gönderiye bir Uzman Danışman (Binarnic_1.0.mq4 dosyası) ve videoda kullandığım bir komut dosyası (Script_0.mq4 dosyası) eklidir.

Karışıklığı önlemek için önce videoyu izleyin. Videoma kulaklıktan baktım - sesle her şey yolunda görünüyor.

YouTube'a koymak istedim ama orada Google güvenlik konusunda o kadar zor bir şey yaptı ki cep telefonumdan bile anlayamadım. Kısacası, bulutta mail-ru'da bir video yayınladım. Sadece indirin, çünkü bu sunucunun görüntüleyicisi açıkça kaliteden muzdariptir. Dosya formatı mp4'tür. Dosya boyutu 252 megabayttır. İndirme bağlantısı burada: https://cloud.mail.ru/public/Ewoq/ymNxHFJ2Z

Herkese günaydın ve iyi bir ruh hali!

Vitaliy, danışman kodunu sadece MT4 için mi yazmayı düşünüyorsunuz yoksa MT5 için bir versiyon olacak mı? MQL5 programlama dilinde küçük bir kendi kendine çalışma kursu aldığım için dördüne aşina değilim, bu yüzden danışmanınızın koduna neredeyse hiçbir şey ekleyemiyorum. Çok yazık!

Saygılarımla, Vladimir.

 
MrBrooklin # :

Herkese günaydın ve iyi bir ruh hali!

Vitaliy, danışman kodunu sadece MT4 için mi yazmayı düşünüyorsunuz yoksa MT5 için bir versiyon olacak mı? MQL5 programlama dilinde küçük bir kendi kendine çalışma kursu aldığım için dördüne aşina değilim, bu yüzden danışmanınızın koduna neredeyse hiçbir şey ekleyemiyorum. Çok yazık!

Saygılarımla, Vladimir.

MQL4, MQL5'ten farklı değildir. Fark sadece veri erişimi ve ticaret fonksiyonlarındadır. Bütün bunlar ortak bir sanal arayüze sahip sınıflara "sarılır" - ve işte, hem orada hem de orada değişiklik yapmadan derlenen taşınabilir kod elde ederiz.

 
Georgiy Merts # :

MQL4, MQL5'ten farklı değildir. Fark sadece veri erişimi ve ticaret fonksiyonlarındadır. Bütün bunlar ortak bir sanal arayüze sahip sınıflara "sarılır" - ve işte, hem orada hem de orada değişiklik yapmadan derlenen taşınabilir kod elde ederiz.

https://www.mql5.com/ru/docs/basis/preprosessor/conditional_compilation
 
Georgiy Merts # :

Fark sadece veri erişimi ve ticaret fonksiyonlarındadır.


Sadece değil.

 

Aynen öyle.

Sadece koşullu derleme yönergelerinin yardımıyla. Tüm bu yönergeler gerçek sınıflar içinde çalışır. Alım satım işlemleri için sanal bir evrensel arayüz yazıyoruz ve uygulama sınıflarında koşullu derleme kullanarak MQL4-MQL5 dallarını ayırıyoruz. Ve sonra, ona eriştiğimiz sanal arayüzü kullanarak ticaret yapacak bir nesne yaratırız. Ve platformlar arasındaki herhangi bir farkı unutun.

Diyelim ki ticaret işlemcim sanal arayüzüm:

 // СTradeProcessorI - интерфейс торгового процессора

#include <MyLib\Common\MyObject.mqh>
#include <MyLib\Common\CurSymEnum.mq5>

class CTradePosComponentI;
class COrderInfoCore;

class CTradeProcessorI : public CMyObject
{
public :
   void CTradeProcessorI() {    SetMyObjectType(MOT_TRADE_PROCESSOR_I); };
   virtual void ~CTradeProcessorI() {};
   
   // Настроечный интерфейс
   virtual void SetSlippage( uint uiSlippage) = 0 ;
   
   // Торговый интерфейс
   // Все функции возвращают код возврата торгового сервера
   virtual int Buy( long & lTicket,ECurrencySymbol csSymbol, double dVolume, double dTP= 0 , double dSL= 0 , ulong ulMagic = 0 , string strComment = NULL ) = 0 ;               // Всегда по цене Ask, если успешно - возвращается lTicket
   virtual int Sell( long & lTicket,ECurrencySymbol csSymbol, double dVolume, double dTP= 0 , double dSL= 0 , ulong ulMagic = 0 , string strComment = NULL ) = 0 ;               // Всегда по цене Bid, если успешно - возвращается lTicket  

   virtual int ModifyTPSL(CTradePosComponentI* ptpcComponent, double dTP= 0 , double dSL= 0 ) = 0 ;       
   virtual int ModifyTPSL( long lTPCTicket, double dTP= 0 , double dSL= 0 ) = 0 ;       

   virtual int CloseTradeComponent(CTradePosComponentI* ptpcComponent, double dCloseVolume= EMPTY_VALUE ) = 0 ;               // dCloseVolume - закрываемый объем. Если равен EMPTY_VALUE или равен или больше, чем объем торговой компоненты с указанным тикетом - закрывается вся торговая компонента.   
   virtual int CloseTradeComponent( long lTPCTicket, double dCloseVolume= EMPTY_VALUE ) = 0 ;               // dCloseVolume - закрываемый объем. Если равен EMPTY_VALUE или равен или больше, чем объем торговой компоненты с указанным тикетом - закрывается вся торговая компонента.   
   
   virtual int PendingSet( long & lTicket,ECurrencySymbol csSymbol, ENUM_ORDER_TYPE otOrderType, double dSetPrice, double dVolume, double dTP= 0 , double dSL= 0 , ulong ulMagic = 0 , string strComment = NULL ) = 0 ; // если успешно - возвращается lTicket
   virtual int PendingDelete( long lTicket) = 0 ; 
   virtual int PendingDelete(COrderInfoCore* poiOrder) = 0 ; 
   
   virtual int PendingModify( long lTicket, double dSetPrice, double dTP= 0 , double dSL= 0 ) = 0 ;       
   virtual int PendingModify(COrderInfoCore* poiOrder, double dSetPrice, double dTP= 0 , double dSL= 0 ) = 0 ;       
   
   // Проверка кода возврата
   virtual bool TradeOperationWasSuccessful( int iTradeResCode) const = 0 ;
   
   // Если функция возвращает true, то при возникновении пользовательских ошибок (iTradeResCode > ERR_USER_ERROR_FIRST) советник прекратит работу
   // В случае false - работа будет продолжена
   virtual bool IsUserErrorsFalal() const = 0 ; 

};


Tüm işlevler sanaldır ve platformdan tamamen bağımsızdır. Ayrı bir MT4 siparişini veya MT5'te bir sembol için açık bir pozisyonu temsil eden, platformdan bağımsız bir "ticaret bileşeni" konsepti tanıtıldı. Ve iş sadece böyle bir ticaret bileşeni ile gerçekleşir.

Bu arabirimi uygulayan gerçek sınıf şöyle görünür:

 // СTradeProcessor - переносимый класс торгового процессора
// Именно этот класс необходимо использовать для торговли. 
// Класс реализует интерфейс CTradeProcessorI

#ifdef __MQL5__
#include <MyLib\Trade\MT5TradeProcessor.mq5>
#else // __MQL5__
#include <MyLib\Trade\MT4TradeProcessor.mq5>
#endif //__MQL5__

#ifdef __MQL5__
class CTradeProcessor : public CMT5TradeProcessor
#else // __MQL5__
class CTradeProcessor : public CMT4TradeProcessor
#endif //__MQL5__

{
public :
   void CTradeProcessor( uint uiSlippage = DEFAULT_TRADE_POINT_SLIPPAGE);
   void ~CTradeProcessor() {};
};


Aslında, uygulamanın tamamı platforma özel CMT5TradeProcessor ve CMT4TradeProcessor sınıfları içinde gerçekleşir.