見出し画像

【EA】月末月初自動停止

割引あり

Hiroです。
月末月初、荒れますよね。
かといって毎月EAの停止・稼働を手動で行うのはめんどくさい・・
そんな時に使える方法です。
※無料エリアではサーバー時間のみ対応します。

大まかな流れ

大まかな流れは・・
・稼働停止、稼働再開する”日”を格納する変数を準備する
・EA内で現在の時刻を取得する
・現在時刻から”日”の値だけを抜き出す
・エントリー判断ロジックで↑の値が稼働停止日より後 or 稼働再開日以前である場合エントリーしないよう設定
といったシンプルなものです。

・稼働停止、稼働再開する”日”を格納する変数を準備する

ここでは停止日をEnd_Day 再開日をStart_Dayとします。
変数の型はint型を使用します。
※input関数を利用してパラメータに組み込めばユーザー設定可能になります。

int End_Day = 28;
int Start_Day = 5;

28日から稼働を停止し、5日から稼働を再開します。

・EA内で現在の時刻を取得する

デフォルト実装関数で現在時刻を取得します。(サーバー時間)
ここでは”Curr_Time"に格納します。型はdatetime型です。

datetime Curr_Time = TimeCurrent();

・現在時刻から”日”の値だけを抜き出す

TimeDay関数を利用し”日”の情報だけを抜き出します。型はint 型です。
※int Day()関数でも日を抜き出すことはできますが、サーバー時間のみとなるため今回はTimeDay()関数を使用しています。

int Curr_Day = TimeDay(Cure_Time);

・エントリーロジックに組み込む

if()関数を利用してエントリーロジックに組み込みます。
以下は現在の日付がEnd_Dayより前かつStart_Day以降であればエントリーロジックを動かす。というコードです。

if(Curr_Day < End_Day && Cure_Day >= Start_Day)
{
//エントリーロジックを記述
}

以上で動きの激しい月末月初のみEAのエントリーを停止することができます。

フィルターのON / OFF追加 日本時間での設定方法は以下の有料記事で紹介しています。

ここから先は

813字

この記事が気に入ったらサポートをしてみませんか?