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

 
Merhaba! Lütfen bana söyle. Koşul nasıl doğru yazılır: *yeni bir saat geldiyse*?
 
MrBrooklin :

Merhaba!

Anlamama yardım et. "Zaman filtresi" ticaret sinyali modülü hakkında bir sorum var.

Gerçek şu ki, bu modülü kullanarak bir danışman oluşturdum ve izni günde sadece bir saat ticarete ayarladım. Temelde böyle ticaret yapıyor, ancak danışmanın istediği saatte pozisyon açtığı günler var. "Zaman filtresi" ticaret sinyali modülünü diğer ticaret sinyali modülleriyle (örneğin, Stokastik, WPR, vb.) çeşitli kombinasyonlarda uygulamaya çalıştım, aynı şey oluyor. Ayrıca, izin verilen 2 ardışık çalışma saatini ayarlarsanız, sorun olmaz, net bir şekilde çalışır.

Ne ile bağlanabilir? "Zaman filtresi" ticaret sinyali modülünün kodunda bir hata olabilir mi? Programlama konusunda uzman olmadığım için, çözmeme yardım etmeni veya bana söylemeni istiyorum, belki de kendim yanlış bir şey yapıyorum.

Saygılarımla, Vladimir.


İşte resimde iyi bir örnek. Bir gün saat 7'de açılıyor, başka bir gün saat 17'de açılıyor, üçüncü gün yine saat 7'de açılıyor ve sadece saat 7'de açılması gerekiyor.


mq5 mesajına bir Uzman Danışman ekleyebilir ve test cihazı parametrelerini belirleyebilir misiniz (iki ekran görüntüsü: Ayarlar ve Parametreler sekmeleri)?

 
Snajper007 :
Merhaba! Lütfen bana söyle. Koşul nasıl doğru yazılır: *yeni bir saat geldiyse*?

Zaman anlamında (örneğin, saat 15-00 gösterdi) veya H1 zaman diliminde yeni bir çubuk doğdu anlamında mı?

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5

Vladimir Karputov , 2019.10.14 12:04

mq5 mesajına bir Uzman Danışman ekleyebilir ve test cihazı parametrelerini belirleyebilir misiniz (iki ekran görüntüsü: Ayarlar ve Parametreler sekmeleri)?


Örneğin, asılsız olmamak için, MQL5 Sihirbazı'nda AMA ticaret sinyallerinin ilk modülünü ve bir zaman filtresini oluşturdum.

 //+------------------------------------------------------------------+
//|                                                          AMA.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\SignalAMA.mqh>
#include <Expert\Signal\SignalITF.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedRisk.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string              Expert_Title            = "AMA" ;                  // Document name
ulong                     Expert_MagicNumber      = 8503 ;                   //
bool                      Expert_EveryTick        = false ;                   //
//--- inputs for main signal
input int                 Signal_ThresholdOpen    = 10 ;                     // Signal threshold value to open [0...100]
input int                 Signal_ThresholdClose   = 10 ;                     // Signal threshold value to close [0...100]
input double              Signal_PriceLevel       = 0 ;                       // Price level to execute a deal
input double              Signal_StopLevel        = 50.0 ;                   // Stop Loss level (in points)
input double              Signal_TakeLevel        = 50.0 ;                   // Take Profit level (in points)
input int                 Signal_Expiration       = 4 ;                       // Expiration of pending orders (in bars)
input int                 Signal_AMA_PeriodMA     = 10 ;                     // Adaptive Moving Average(1,1,...) Period of averaging
input int                 Signal_AMA_PeriodFast   = 2 ;                       // Adaptive Moving Average(1,1,...) Period of fast EMA
input int                 Signal_AMA_PeriodSlow   = 30 ;                     // Adaptive Moving Average(1,1,...) Period of slow EMA
input int                 Signal_AMA_Shift        = 0 ;                       // Adaptive Moving Average(1,1,...) Time shift
input ENUM_APPLIED_PRICE Signal_AMA_Applied      = PRICE_CLOSE ;             // Adaptive Moving Average(1,1,...) Prices series
input double              Signal_AMA_Weight       = 1.0 ;                     // Adaptive Moving Average(1,1,...) Weight [0...1.0]
input int                 Signal_ITF_GoodHourOfDay=- 1 ;                     // IntradayTimeFilter(-1,...) Good hour
input int                 Signal_ITF_BadHoursOfDay= 16777087 ;               // IntradayTimeFilter(-1,...) Bad hours (bit-map)
input int                 Signal_ITF_GoodDayOfWeek=- 1 ;                     // IntradayTimeFilter(-1,...) Good day of week
input int                 Signal_ITF_BadDaysOfWeek= 0 ;                       // IntradayTimeFilter(-1,...) Bad days of week (bit-map)
input double              Signal_ITF_Weight       = 1.0 ;                     // IntradayTimeFilter(-1,...) Weight [0...1.0]
//--- inputs for money
input double              Money_FixRisk_Percent   = 10.0 ;                   // Risk percentage
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- Initializing expert
   if (!ExtExpert.Init( Symbol (), Period (),Expert_EveryTick,Expert_MagicNumber))
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing expert" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Creating signal
   CExpertSignal *signal= new CExpertSignal;
   if (signal== NULL )
     {
       //--- failed
       printf ( __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 CSignalAMA
   CSignalAMA *filter0= new CSignalAMA;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodMA(Signal_AMA_PeriodMA);
   filter0.PeriodFast(Signal_AMA_PeriodFast);
   filter0.PeriodSlow(Signal_AMA_PeriodSlow);
   filter0.Shift(Signal_AMA_Shift);
   filter0.Applied(Signal_AMA_Applied);
   filter0.Weight(Signal_AMA_Weight);
//--- Creating filter CSignalITF
   CSignalITF *filter1= new CSignalITF;
   if (filter1== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter1" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
   signal.AddFilter(filter1);
//--- Set filter parameters
   filter1.GoodHourOfDay(Signal_ITF_GoodHourOfDay);
   filter1.BadHoursOfDay(Signal_ITF_BadHoursOfDay);
   filter1.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek);
   filter1.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek);
   filter1.Weight(Signal_ITF_Weight);
//--- Creation of trailing object
   CTrailingNone *trailing= new CTrailingNone;
   if (trailing== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating trailing" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Add trailing to expert (will be deleted automatically))
   if (!ExtExpert.InitTrailing(trailing))
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing trailing" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Set trailing parameters
//--- Creation of money object
   CMoneyFixedRisk *money= new CMoneyFixedRisk;
   if (money== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating money" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Add money to expert (will be deleted automatically))
   if (!ExtExpert.InitMoney(money))
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing money" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Set money parameters
   money.Percent(Money_FixRisk_Percent);
//--- Check all trading objects parameters
   if (!ExtExpert.ValidationSettings())
     {
       //--- failed
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Tuning of all necessary indicators
   if (!ExtExpert.InitIndicators())
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing indicators" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- ok
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick ()
  {
   ExtExpert. OnTick ();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade ()
  {
   ExtExpert. OnTrade ();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   ExtExpert. OnTimer ();
  }
//+------------------------------------------------------------------+

"Ayarlar" ekran görüntüsü


"Ayarlar" ekran görüntüsü

Yanlışın ekran görüntüsü zaman filtresi işlemi (farklı günlerde saat 7, 12 ve 7'de pozisyonlar açılır)


 
MrBrooklin :

Örneğin, asılsız olmamak için, MQL5 Sihirbazı'nda AMA ticaret sinyallerinin ilk modülünü ve bir zaman filtresini oluşturdum.

"Ayarlar" ekran görüntüsü


"Ayarlar" ekran görüntüsü

Hatalı zaman filtresi işleminin ekran görüntüsü (pozisyonlar farklı günlerde saat 7, 12 ve 7'de açılır)


1. Grafikli bir resim - ekran görüntüsü alırken bunu "Artı işareti" aracıyla birlikte yapın - aksi takdirde hangi yıl olduğu belli olmaz.

2. Bekleyen emirlerle çalışırken - bekleyen bir emrin, yerleştirme zamanına göre tamamen farklı bir zamanda (saat ve dakika) çalışabileceğini unutmayın.

3. Sinyal modüllerini kullanırken, parametreleri varsayılan değerlere sıfırlayın ve piyasadaki çalışmayı kontrol edin - bekleyen emirler olmadan (bu, 2. nokta net değilse).

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5

Vladimir Karputov , 2019.10.14 13:28

1. Grafikli bir resim - ekran görüntüsü alırken bunu "Artı işareti" aracıyla birlikte yapın - aksi takdirde hangi yıl olduğu belli olmaz.

2. Bekleyen emirlerle çalışırken - bekleyen bir emrin, yerleştirme zamanına göre tamamen farklı bir zamanda (saat ve dakika) çalışabileceğini unutmayın.

3. Sinyal modüllerini kullanırken, parametreleri varsayılan değerlere sıfırlayın ve piyasadaki çalışmayı kontrol edin - bekleyen emirler olmadan (bu, 2. nokta net değilse).


1. Artı işaretiyle ilgili olarak - anlaşılabilir. Ekran görüntüsünde yıl 2019, ay ise Ekim.

2. Bekleyen emri tam olarak anlamadım. Danışmanın bekleyen bir emir verdiğini ve saat başında hemen bir pozisyon açmadığını nasıl belirlediniz? Daha fazla olabilir mi?

3. Varsayılan sinyal modülü değerleri ile EA normal şekilde çalışır. Parametre değerlerini değiştirmek mümkün müdür?

Saygılarımla, Vladimir.

 

***

1. Artı işaretiyle ilgili olarak - anlaşılabilir. Ekran görüntüsünde yıl 2019, ay ise Ekim.

***

Açıklama için teşekkürler.

***

2. Bekleyen emri tam olarak anlamadım. Danışmanın bekleyen bir emir verdiğini ve saat başında hemen bir pozisyon açmadığını nasıl belirlediniz? Daha fazla olabilir mi?

***

Görsel test cihazındaki "Geçmiş" sekmesine bakmanız yeterli

Geçmiş sekmesi

***

3. Varsayılan sinyal modülü değerleri ile EA normal şekilde çalışır. Parametre değerlerini değiştirmek mümkün müdür?

***

Elbette yapabilirsiniz, ancak yalnızca ne yaptığınızı anlarsanız ve hangi parametrenin neyden sorumlu olduğunu anlarsanız.

 
Vladimir Karputov :

Zaman anlamında (örneğin, saat 15-00 gösterdi) veya H1 zaman diliminde yeni bir çubuk doğdu anlamında mı?

Yani saat 15-00 gösteriyordu.
 
Snajper007 :
Yani saat 15-00 gösteriyordu.

Ve sonuç ne derece güvenilirliğe ihtiyaç duyuyor?

Sadece bir örnek: Saatte 15-00 saatini görmek istiyorsunuz. Ve bekle. Ancak şu anda kene yoktu veya sunucuyla bağlantı yoktu. Ve sonra tikler başladı, ancak zaman zaten 15 saat 00 dakika 36 saniye. Ne yapacaksın?

 
Vladimir Karputov :

Ve sonuç ne derece güvenilirliğe ihtiyaç duyuyor?

Sadece bir örnek: Saatte 15-00 saatini görmek istiyorsunuz. Ve bekle. Ancak şu anda kene yoktu veya sunucuyla bağlantı yoktu. Ve sonra tikler başladı, ancak zaman zaten 15 saat 00 dakika 36 saniye. Ne yapacaksın?

Tam olarak 15-00 değil, saatin başlangıcını kontrol edecek şekilde yapmak mümkün mü? Onlar. öyle ki, bir önceki saatin bittiği ve yenisinin başladığı daha ilk dakikadan belliydi.