MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 270

 
Artyom Trishkin:
月初が何曜日 だったかがわかるだけで十分です。あとは計算です。

左手で右耳を掻くようなものです。

 
Darirunu:

すみません、おそらく質問を注意して見ていなかったのでしょう。

4の条件はどう書くかというと、月の第一金曜日が強気であった場合と

2回目の月曜日が弱気であれば、売りの取引を開始 します。

DayOfWeek()==1 月曜日は明確だが、何月の何月曜日か)

了解!自分だけが知っているアルゴリズムの話でしょ。月1日の曜日を 決定せよ!」と書いたことがあります。そして、表や2つの簡単な計算式を使って、気になる日付けを決めていくのです。

カレンダーで表を確認する。

月の初日を6とすると、最初の金曜日の数字は7となる。そうでなければ、第一金曜日は6に等しい-月の始まりの日。

月の始まりの日が2でない場合、第2月曜日は9-その月の日に相当します。それ以外の場合、第2月曜日の数字は16-その月の日です。

数学関数を使えば、除算の余りや モジュールはもっと短くなる

 
LRA:

了解!あなただけが知っているあなたのアルゴリズムの話です。何が言いたいかというと、月初めの曜日を 決めろ!ということです。そして、表や2つの簡単な計算式を使って、関心のある日の日付を決めていくのです。

カレンダーで表を確認する。

月の初日を6とすると、最初の金曜日の数字は7となる。そうでなければ、第一金曜日は6に等しい-月の始まりの日。

月の始まりの日が2でない場合、第2月曜日は9-その月の日に相当します。それ以外の場合は、第2月曜日は16に等しい - その月の日数

ありがとうございます、神のご加護を・・・チェックします。
 
Darirunu:
ありがとうございます。

このたびは、ご希望をいただき、誠にありがとうございました。そして、やはりドットの後にスペースを入れ、ドットの前にもスペースを入れる。プログラミングに役立つ幸運と、必要なら利益も!

 
LRA:

ご指摘、誠にありがとうございました。また、フルストップの後にスペースを入れ、フルストップの前にスペースを飛ばしたい場合もあります。プログラミングに役立つがんばってください!そして、必要な方は、がんばってください。


とても複雑なものが出てきます。もっとシンプルな選択肢があるはずだ。どなたか教えてください。

例えば明日、アップデートで何かが変わり、すべてを書き直さなければならなくなったとします。

 
Darirunu:

とても複雑なものが出てきます。もっとシンプルな選択肢があるはずだ。どなたか教えてください。

明日、アップデートで何かが変わり、すべてを書き直さなければならなくなったとします。

そんなに難しいことではありません。しかし、それぞれの状況に応じて、何本の日足バーをコピーするか、どのバーを構造体にインポートするか、異なる値を設定する必要があります。

/********************Script program start function********************/
void OnStart()
{
 MqlDateTime mqlDateTime0, mqlDateTime1;
 datetime arrDateTime[7];
 CopyTime(_Symbol, PERIOD_D1, 0, 7, arrDateTime);
 TimeToStruct(arrDateTime[0], mqlDateTime0);
 TimeToStruct(arrDateTime[6], mqlDateTime1);
 if(mqlDateTime0.day_of_week == FRIDAY && mqlDateTime0.mon != mqlDateTime1.mon)
  {
   Print("Ура!!! Сегодня первая пятница");
   // Дальше можно брать по времени пятницы открытие и закрытие бара и на основании этого определяем бычья или медвежья свеча...
  }
}/********************************************************************/

ローソク足のパラメータをMqlRatesの 構造体に取り込むのがよいでしょう

 
Alexey Viktorov:

しかし、それぞれの状況に応じて、何本の日足バーをコピーするか、どのバーを構造体に入れるか、異なる値を設定する必要があります。



ということで、MQL4にしか興味はありません。

 
Darirunu:

それこそMQL4しか興味がないのですが・・・別の解決策を探さないといけませんね.

それがmql4です。
ファイル:
00.mq4  2 kb
 
double ma;
   int    res;
   int nomber = OrdersHistoryTotal();
   int tip=OrderType();
   if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
   {
   tip=OrderType();
   }
   ma=iMA(NULL,0,MovingPeriod,120,MODE_SMA,PRICE_CLOSE,1);
   if(Bid<ma)
   if(tip!=OP_SELL)
   {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TP*Point,"",MAGICMA,0,Red);
      return;
     }



こんにちは。困っているんです。もし、閉じた売り注文があれば、次の注文は買い注文しかできません。
 
Darirunu:

それこそMQL4しか興味ないんですけどね。

また、こんな考えもあります。

第1金曜日が必要な場合は、8より小さい数字にする必要があります。第1金曜日を金曜日とした場合、次の金曜日は第8金曜日となります。したがって、任意の曜日、任意の日、2番目、3番目...に簡単に再計算することができます。