VQL5 Sihirbazını kullanarak basit bir Expert Advisor oluşturdum, kod aşağıda verilmiştir. "Bekleyen emirlerin süresinin dolması (bar cinsinden)" işlevinin neden çalışmadığını anlamama yardım et, "Bekleyen emirlerin süresinin dolması (bar cinsinden)" olarak çevrildi. 1'den 1000'e kadar herhangi bir Signal_Expiration değeri ayarladım, ancak hala bekleyen sipariş yalnızca bir çubuk sırasında var. Ayarları da ekliyorum.
Test için Metatrader 5 terminalinin Demo hesabını kullanıyorum, inşa 2136.
Saygılarımla, Vladimir.
//+------------------------------------------------------------------+//| EA_MasterMQL5.mq5 |//| Copyright 2019, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2019, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Include |//+------------------------------------------------------------------+#include <Expert\Expert.mqh>
//--- available signals#include <Expert\Signal\SignalITF.mqh>
//--- available trailing#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management#include <Expert\Money\MoneyFixedRisk.mqh>
//+------------------------------------------------------------------+//| Inputs |//+------------------------------------------------------------------+//--- inputs for expertinputstring Expert_Title = "EA_MB_MasterMQL5" ; // Document nameulong Expert_MagicNumber = 1473 ; //bool Expert_EveryTick = false ; ////--- inputs for main signalinputint Signal_ThresholdOpen = 0 ; // Signal threshold value to open [0...100]inputint Signal_ThresholdClose = 0 ; // Signal threshold value to close [0...100]inputdouble Signal_PriceLevel = 0.0 ; // Price level to execute a dealinputdouble Signal_StopLevel = 50.0 ; // Stop Loss level (in points)inputdouble Signal_TakeLevel = 50.0 ; // Take Profit level (in points)inputint Signal_Expiration = 4 ; // Expiration of pending orders (in bars)inputint Signal_ITF_GoodHourOfDay=- 1 ; // IntradayTimeFilter(-1,...) Good hourinputint Signal_ITF_BadHoursOfDay= 8389119 ; // IntradayTimeFilter(-1,...) Bad hours (bit-map)inputint Signal_ITF_GoodDayOfWeek=- 1 ; // IntradayTimeFilter(-1,...) Good day of weekinputint Signal_ITF_BadDaysOfWeek= 0 ; // IntradayTimeFilter(-1,...) Bad days of week (bit-map)inputdouble Signal_ITF_Weight = 1.0 ; // IntradayTimeFilter(-1,...) Weight [0...1.0]//--- inputs for moneyinputdouble Money_FixRisk_Percent = 10.0 ; // Risk percentage//+------------------------------------------------------------------+//| Global expert object |//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+//| Initialization function of the expert |//+------------------------------------------------------------------+intOnInit ()
{
//--- Initializing expertif (!ExtExpert.Init( Symbol (), Period (),Expert_EveryTick,Expert_MagicNumber))
{
//--- failedprintf ( __FUNCTION__ + ": error initializing expert" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//--- Creating signal
CExpertSignal *signal= new CExpertSignal;
if (signal== NULL )
{
//--- failedprintf ( __FUNCTION__ + ": error creating signal" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalITF
CSignalITF *filter0= new CSignalITF;
if (filter0== NULL )
{
//--- failedprintf ( __FUNCTION__ + ": error creating filter0" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
signal.AddFilter(filter0);
//--- Set filter parameters
filter0.GoodHourOfDay(Signal_ITF_GoodHourOfDay);
filter0.BadHoursOfDay(Signal_ITF_BadHoursOfDay);
filter0.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek);
filter0.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek);
filter0.Weight(Signal_ITF_Weight);
//--- Creation of trailing object
CTrailingNone *trailing= new CTrailingNone;
if (trailing== NULL )
{
//--- failedprintf ( __FUNCTION__ + ": error creating trailing" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//--- Add trailing to expert (will be deleted automatically))if (!ExtExpert.InitTrailing(trailing))
{
//--- failedprintf ( __FUNCTION__ + ": error initializing trailing" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//--- Set trailing parameters//--- Creation of money object
CMoneyFixedRisk *money= new CMoneyFixedRisk;
if (money== NULL )
{
//--- failedprintf ( __FUNCTION__ + ": error creating money" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//--- Add money to expert (will be deleted automatically))if (!ExtExpert.InitMoney(money))
{
//--- failedprintf ( __FUNCTION__ + ": error initializing money" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//--- Set money parameters
money.Percent(Money_FixRisk_Percent);
//--- Check all trading objects parametersif (!ExtExpert.ValidationSettings())
{
//--- failed
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//--- Tuning of all necessary indicatorsif (!ExtExpert.InitIndicators())
{
//--- failedprintf ( __FUNCTION__ + ": error initializing indicators" );
ExtExpert.Deinit();
return ( INIT_FAILED );
}
//--- okreturn ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| Deinitialization function of the expert |//+------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+//| "Tick" event handler function |//+------------------------------------------------------------------+voidOnTick ()
{
ExtExpert. OnTick ();
}
//+------------------------------------------------------------------+//| "Trade" event handler function |//+------------------------------------------------------------------+voidOnTrade ()
{
ExtExpert. OnTrade ();
}
//+------------------------------------------------------------------+//| "Timer" event handler function |//+------------------------------------------------------------------+voidOnTimer ()
{
ExtExpert. OnTimer ();
}
//+------------------------------------------------------------------+
Bu, OrderCloseTime() yerine geliştiricilerin işine yarayacak mı???
MQL5'teki deneyimim dördüncü gün, ama zaten doyasıya içtim!
OrderCloseTime() işlevini döndürün, aynı konum bir şekilde programlı olarak yapılabilir .... - sipariş - sonra bir anlaşma - sonra bir konum, yoksa konumu makine ile hesaplamak çok mu zor?
Platformun doğal olmayan davranışlarını gözlemliyorum.
1. ME5, kapatma sırasındaki arayüz ayarlarını kaydetmez. Özellikle ayarlar paneli kayboluyor. Geri yükleyebilirsiniz, ancak her açtığınızda yapmanız gerekir.
2. Bir gösterge yapmak. MT5'te gösterge ayarlarının değiştirilmesi genellikle bir arızaya yol açar: çizgilerin şekli önemli ölçüde değişir, renk değiştirilemez vb. Ayrıca, yeni kurulan göstergede ayarlar değiştirilirse, her şey istendiği gibi çalışır.
Sorular:
1. Sadece bende mi yoksa genel bir sorun mu? 2. Bir şeyi dikkate almıyorsam veya yanlış yapıyorsam lütfen bana bildirin.
Kimseyi rahatsız etmiyorsa, lütfen MQL4 kodunu ML5'te çalışacak şekilde düzeltin
İlk önce sistem fonksiyonlarını doğru yazmanız gerekir. Bunu yapmanın en kolay yolu, MetaEditor 5 menüsü Dosya - Yeni - Uzman Danışman (şablon) içindedir. Kodunuzu benimkiyle karşılaştırın:
Bu, OrderCloseTime() yerine geliştiricilerin işine yarayacak mı???
MQL5'teki deneyimim dördüncü gün, ama zaten doyasıya içtim!
OrderCloseTime() işlevini döndürün, aynı konum bir şekilde programlı olarak yapılabilir .... - sipariş - sonra bir anlaşma - sonra bir konum, yoksa konumu makine ile hesaplamak çok mu zor?
Tam olarak ne almak istiyorsunuz? Son TİCARET ( TİCARET türü "piyasa çıkışı") zamanına mı ihtiyacınız var? Veya işlem geçmişindeki bazı POZİSYONLARIN kapanış saatini bilmeniz mi gerekiyor?
Platformun doğal olmayan davranışlarını gözlemliyorum.
1. ME5, kapatma sırasındaki arayüz ayarlarını kaydetmez. Özellikle ayarlar paneli kayboluyor. Geri yükleyebilirsiniz, ancak her açtığınızda yapmanız gerekir.
Ayarlar paneli benim uyarım. Bu, Derleme dahil düğmelerin bulunduğu araç çubuğuna atıfta bulunur. (Atalet ile "ayarlar" dedim - gösterge parametrelerinin ayarlar panelinden de muzdarip olan MT5 ile benim)
Ayarlar paneli benim uyarım. Bu, Derleme dahil düğmelerin bulunduğu araç çubuğuna atıfta bulunur. (Atalet ile "ayarlar" dedim - gösterge parametrelerinin ayarlar panelinden de muzdarip olan MT5 ile benim)
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Herkese iyi günler ve bol kazançlar!
VQL5 Sihirbazını kullanarak basit bir Expert Advisor oluşturdum, kod aşağıda verilmiştir. "Bekleyen emirlerin süresinin dolması (bar cinsinden)" işlevinin neden çalışmadığını anlamama yardım et, "Bekleyen emirlerin süresinin dolması (bar cinsinden)" olarak çevrildi. 1'den 1000'e kadar herhangi bir Signal_Expiration değeri ayarladım, ancak hala bekleyen sipariş yalnızca bir çubuk sırasında var. Ayarları da ekliyorum.
Test için Metatrader 5 terminalinin Demo hesabını kullanıyorum, inşa 2136.
Saygılarımla, Vladimir.
Bu, OrderCloseTime() yerine geliştiricilerin işine yarayacak mı???
MQL5'teki deneyimim dördüncü gün, ama zaten doyasıya içtim!
OrderCloseTime() işlevini döndürün, aynı konum bir şekilde programlı olarak yapılabilir .... - sipariş - sonra bir anlaşma - sonra bir konum, yoksa konumu makine ile hesaplamak çok mu zor?
Herkese iyi günler!
Kimseyi rahatsız etmiyorsa, lütfen MQL4 kodunu ML5'te çalışacak şekilde düzeltin
Platformun doğal olmayan davranışlarını gözlemliyorum.
1. ME5, kapatma sırasındaki arayüz ayarlarını kaydetmez. Özellikle ayarlar paneli kayboluyor. Geri yükleyebilirsiniz, ancak her açtığınızda yapmanız gerekir.
2. Bir gösterge yapmak. MT5'te gösterge ayarlarının değiştirilmesi genellikle bir arızaya yol açar: çizgilerin şekli önemli ölçüde değişir, renk değiştirilemez vb.
Ayrıca, yeni kurulan göstergede ayarlar değiştirilirse, her şey istendiği gibi çalışır.
Sorular:
1. Sadece bende mi yoksa genel bir sorun mu?
2. Bir şeyi dikkate almıyorsam veya yanlış yapıyorsam lütfen bana bildirin.
Herkese iyi günler!
Kimseyi rahatsız etmiyorsa, lütfen MQL4 kodunu ML5'te çalışacak şekilde düzeltin
İlk önce sistem fonksiyonlarını doğru yazmanız gerekir. Bunu yapmanın en kolay yolu, MetaEditor 5 menüsü Dosya - Yeni - Uzman Danışman (şablon) içindedir. Kodunuzu benimkiyle karşılaştırın:
Düzelttikten sonra devam edeceğiz...Bu, OrderCloseTime() yerine geliştiricilerin işine yarayacak mı???
MQL5'teki deneyimim dördüncü gün, ama zaten doyasıya içtim!
OrderCloseTime() işlevini döndürün, aynı konum bir şekilde programlı olarak yapılabilir .... - sipariş - sonra bir anlaşma - sonra bir konum, yoksa konumu makine ile hesaplamak çok mu zor?
Tam olarak ne almak istiyorsunuz? Son TİCARET ( TİCARET türü "piyasa çıkışı") zamanına mı ihtiyacınız var? Veya işlem geçmişindeki bazı POZİSYONLARIN kapanış saatini bilmeniz mi gerekiyor?
Platformun doğal olmayan davranışlarını gözlemliyorum.
1. ME5, kapatma sırasındaki arayüz ayarlarını kaydetmez. Özellikle ayarlar paneli kayboluyor. Geri yükleyebilirsiniz, ancak her açtığınızda yapmanız gerekir.
Ben kimim? Ayarlar paneli nedir?
Ben kimim? Ayarlar paneli nedir?
ME = Meta Düzenleyici.
Ayarlar paneli benim uyarım. Bu, Derleme dahil düğmelerin bulunduğu araç çubuğuna atıfta bulunur.
09/06/2019 tarihinden itibaren 2138 oluşturun.(Atalet ile "ayarlar" dedim - gösterge parametrelerinin ayarlar panelinden de muzdarip olan MT5 ile benim)
ME = Meta Düzenleyici.
Ayarlar paneli benim uyarım. Bu, Derleme dahil düğmelerin bulunduğu araç çubuğuna atıfta bulunur.
09/06/2019 tarihinden itibaren 2138 oluşturun.(Atalet ile "ayarlar" dedim - gösterge parametrelerinin ayarlar panelinden de muzdarip olan MT5 ile benim)
Lütfen bunun hangi ekipmanda olduğunu belirtin:
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
Vladimir Karputov , 2019.07.31 12:12
Aşağıdaki verileri belirtin:
"Günlük" sekmesinden üç satırı kopyalayın (üç satır seçin -> sağ fare tıklaması -> Kopyala)
ve mesaja yapıştırın. Şu şekilde ortaya çıkmalı: