Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1120

 

Bir danışman var, hangi günlerde ticaret yapıp hangilerini yapmayacağını seçme yeteneğine sahip olmasını istiyorum.

Pzt - yanlış

W - doğru

Yüzbaşı...

Lütfen bana bunun nasıl uygulanacağını söyle?

 
RichLux :

Bir danışman var, hangi günlerde ticaret yapıp hangilerini yapmayacağını seçme yeteneğine sahip olmasını istiyorum.

Pzt - yanlış

W - doğru

Yüzbaşı...

Lütfen bana bunun nasıl uygulanacağını söyle?

Haftanın günü

Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.

int Haftanın Günü ();

Geri dönüş değeri

Haftanın gününün sıra numarası (Pazar-0,1,2,3,4,5,6) .

Not

Test sırasında, bilinen son sunucu zamanı simüle edilir.

Misal:

   // hafta sonları çalışmaz.
   if ( DayOfWeek ()==0 || DayOfWeek ()==6) return (0);

 

Haftanın günü

Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.  

Teşekkürler, daha net oldu.

Artık harici parametrelerde işlem günlerini seçme özelliğini nasıl uygulayacağımı anlayamıyorum. Daha ayrıntılı olarak, aynı Uzman Danışmanın Pazartesi günü bir işlem çiftinde işlem yapmasını ve diğerinde işlem yapmamasını istiyorum.

"extern" ile nasıl yazılır ve ardından koşulda nasıl uygulanır (if...else)?

 
RichLux :

Haftanın günü

Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.  

Teşekkürler, daha net oldu.

Artık harici parametrelerde işlem günlerini seçme özelliğini nasıl uygulayacağımı anlayamıyorum. Daha ayrıntılı olarak, aynı Uzman Danışmanın Pazartesi günü bir işlem çiftinde işlem yapmasını ve diğerinde işlem yapmamasını istiyorum.

"extern" ile nasıl yazılır ve ardından koşulda nasıl uygulanır (if...else)?

İşte sadece Pazartesi günü işlem yapılmasına izin veren basit bir örnek. Bu kod MT4 ve MT5'te çalışır

//+------------------------------------------------------------------+
//|                                                       test08.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link        "https://www.mql5.com/ru/users/sergey1294"
#property version    "1.00"
#property strict

input ENUM_DAY_OF_WEEK dayofweek= MONDAY ;

MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   TimeToStruct ( TimeCurrent (),time);
   if (time.day_of_week!=dayofweek) return ; // выйдем из OnTick() если текущий день не равен установленному дню
  
   // тут остальной код советника.
  }
//+------------------------------------------------------------------+


...

 
RichLux :

Haftanın günü

Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.  

Teşekkürler, daha net oldu.

Artık harici parametrelerde işlem günlerini seçme özelliğini nasıl uygulayacağımı anlayamıyorum. Daha ayrıntılı olarak, aynı Uzman Danışmanın Pazartesi günü bir işlem çiftinde işlem yapmasını ve diğerinde işlem yapmamasını istiyorum.

"extern" ile nasıl yazılır ve ardından koşulda nasıl uygulanır (if...else)?

ENUM_DAY_OF_WEEK numaralandırmasını kullanın

Sayfanın en sonunda.

Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
 

geçersiz OnTick ()
{
//---
TimeToStruct ( TimeCurrent (), zaman);
if (time.day_of_week!=dayofweek) dönüşü ; // eğer geçerli gün ayarlanan güne eşit değilse OnTick()'ten çık

// EA kodunun geri kalanı burada.
}
//+------------------------------------------- --------------------+


...

Teşekkür ederim!

Doğru, şimdi hala her çiftin farklı sayıda "çalışma" günü olduğu bir an ile çalışmanız gerekiyor.

Belki de 5 değişken girmeniz gerekiyor: haftanın günü1, haftanın günü2,...?

Ama yine 3 işlem günü varsa kalan 2 değişkende ne belirtilmelidir!?

 
Tünaydın! Soruna bir çözüm önerin. M15'te girişi olan bir kod var, ancak H1'den gelen sinyal dikkate alınıyor. Sinyal H1'de asılıyken, M15'te gösterge birkaç sinyal verir. Soru birle (yani ilk sinyalle) sınırlamaktır.
Dosyalar:
nsm.txt  1 kb
 
RichLux :


...

Teşekkür ederim!

Doğru, şimdi hala her çiftin farklı sayıda "çalışma" günü olduğu bir an ile çalışmanız gerekiyor.

Muhtemelen 5 değişken girmeniz gerekiyor: dayofweek1, dayofweek2,...?

Ama yine 3 işlem günü varsa kalan 2 değişkende ne belirtilmelidir!?

Şu şekilde deneyebilirsiniz:

#property strict

//-
enum YesNo {
_no       = 0 , // NoTrade
_yes      = 1    // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;   // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
//--

 // здесь какой-то код, например закрытие

  ... 

 // проверка запрета на торговлю
   if (TradeAllow()) return ;
   // далее код
  
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct ( TimeCurrent (),time);
   switch (time.day_of_week) {
   case 1 : return (!day1);
   case 2 : return (!day2);
   case 3 : return (!day3);
   case 4 : return (!day4);
   case 5 : return (!day5);
   defaultreturntrue );
  }
}

Perşembe günleri ticaret yasağı var

Biraz daha güzel yapabilirsiniz, hepsi göreve bağlıdır:

#property version    "1.00"
#property strict

//-
enum YesNo {
_no       = 0 , // No trade
_yes      = 1    // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;   // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
//--
   if (TradeAllow()) {
    ClosePos(); // Только закрытие
  } else {
    ClosePos(); // Закрытие
    OpenPos();   // Открытие
    Function()   // Ещё что-то
  }
  
//-
}
//+------------------------------------------------------------------+
//| Функция закрытия                                                 |
//+------------------------------------------------------------------+
void ClosePos()
{
   // код
}

//+------------------------------------------------------------------+
//| Функция открытия                                                 |
//+------------------------------------------------------------------+
void OpenPos()
{
   // код
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct ( TimeCurrent (),time);
   switch (time.day_of_week) {
   case 1 : return (!day1);
   case 2 : return (!day2);
   case 3 : return (!day3);
   case 4 : return (!day4);
   case 5 : return (!day5);
   default : return ( true );
  }
}
//+------------------------------------------------------------------+
 
Herkese selam! MT4'te işlem yaparken clusterdelta.com'daki delta göstergesini kullanıyorum. Gösterge değerlerinde belirli bir eşiğe ulaşıldığında, bir uyarı tetiklenmesini veya başka bir şekilde bir ses sinyali verilmesini sağlayabilecek bir serbest çalışana ihtiyacımız var. Bu soruyla kiminle iletişim kuracağımı söyle?
 
Lexx1 :
Herkese selam! MT4'te işlem yaparken clusterdelta.com'daki delta göstergesini kullanıyorum. Gösterge değerlerinde belirli bir eşiğe ulaşıldığında, bir uyarı tetiklenmesini veya başka bir şekilde bir ses sinyali verilmesini sağlayabilecek bir serbest çalışana ihtiyacımız var. Bu soruyla kiminle iletişim kuracağımı söyle?
Üstte mavi bir şerit var, üzerinde daha birçok farklı harf var. Orada "Serbest" kelimesini arayın ve tıklayın. Ayrıca, ne yapılması gerektiği açık olduğunu düşünüyorum.