どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1120

 

EAを使っているのですが、取引する日としない日を選択できるようにしたいのですが。

月 - 偽

火 - 本当

Cp- ...

どのように実装すればよいか、アドバイスをお願いします。

 
RichLux:

EAを使っているのですが、取引する日としない日を選択できるようにしたいのですが。

月 - 偽

火 - 本当

Cp- ...

どのように実装すればよいか、アドバイスをお願いします。

曜日

9.1.3 サーバー時刻の連番 最後に確認されたサーバー時刻の曜日の 連番を返します。

intDayOfWeek()。

戻り値

曜日の連番(日曜日-0,1,2,3,4,5,6) です

備考

テスト中は、最後に確認されたサーバーの時刻をシミュレートします。

// 週末は営業していません。
if(DayOfWeek()==0 ||DayOfWeek()==6)return(0);

 

曜日

9.1.3 サーバー時刻の曜日 番号 サーバー時刻が最後に判明した曜日のシーケンス番号を返す。

ありがとうございます、より理解できました。

外部パラメータで取引日を選択する実装が今ひとつわからない。具体的には、同じExpert Advisorで、月曜日はある取引ペアで取引し、別の取引ペアでは取引しないようにしたいのです。

externで書いて、condition(if...else)で実装するには?

 
RichLux:

曜日

9.1.3 サーバー時刻の曜日 番号 サーバー時刻が最後に判明した曜日のシーケンス番号を返す。

ありがとうございます、より理解できました。

外部パラメータで取引日を選択する実装が今ひとつわからない。具体的には、同じExpert Advisorで、月曜日はある取引ペアで取引し、別の取引ペアでは取引しないようにしたいのです。

externで書いて、condition(if...else)で実装するには?

ここでは、月曜日だけ取引できる簡単な例をご紹介します。このコードはMT4とMT5で動作します。

//+------------------------------------------------------------------+
//|                                                       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:

曜日

9.1.3 サーバー時刻の曜日 番号 サーバー時刻が最後に判明した曜日のシーケンス番号を返す。

ありがとうございます、より理解できました。

外部パラメータで取引日を選択する実装が今ひとつわからない。具体的には、同じExpert Advisorで、月曜日はある取引ペアで取引し、別の取引ペアでは取引しないようにしたいのです。

externで記述して、条件(if...else)で実装するには?

ENUM_DAY_OF_WEEK 列挙型を使用する。

ページの一番最後に

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

void OnTick()
{
//---
TimeToStruct(TimeCurrent(),time);
if(time.day_of_week!=dayofweek)return;// 現在の曜日と設定した曜日が等しくない場合はOnTick()を終了

// 残りのEAコードはこちら です。
}
//+------------------------------------------------------------------+


...

ありがとうございました。

さて、ここで問題になるのは、それぞれのペアで「働く」日数が異なるという点です。

おそらく5つの変数を入力する必要があります。dayofweek1,dayofweek2,...?

しかし、やはり取引日が3日ある場合、残りの2つの変数に何を入力すればいいのでしょうか?

 
こんにちは、この問題を解決する方法を教えていただけませんか?M15にエントリーでコードがありますが、H1からの信号が考慮されています。H1にはシグナルがあるが、M15には複数のシグナルがある。問題は、それを1つ(つまり最初の信号)に限定することです。
ファイル:
nsm.txt  1 kb
 
RichLux:


...

ありがとうございました。

しかし、ここで、各ペアの「稼働日数」が異なることに対処する必要がある。

おそらく5つの変数を入力する必要があります。dayofweek1,dayofweek2,...?

しかし、やはり取引日が3日ある場合、残りの2つの変数に何を入力すればいいのでしょうか!

このようにやってみることもあります。

#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);
  }
}

木曜日の取引は禁止されています。

もう少し美しくしてもいい、すべては作業次第だ。

#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);
  }
}
//+------------------------------------------------------------------+
 
みなさん、こんにちは。私はMT4の取引でclusterdelta.comのデルタインジケーターを 使用しています。インジケータの値がある閾値に達すると、アラートなどの音が出るようにできるフリーランサーが必要です。この問題について、誰に連絡すればよいか教えてください。
 
Lexx1:
みなさん、こんにちは。私はMT4の取引でclusterdelta.comのデルタインジケーターを使用しています。インジケータの値がある閾値に達すると、アラートなどの音が出るようにできるフリーランサーが必要です。この件について、誰に連絡すればよいか教えてください。
上部に青いバーがあり、そこにはさまざまな文字がたくさん書かれています。Freelance」の文字を探し、クリックします。そこから先はおわかりだと思います。