![見出し画像](https://assets.st-note.com/production/uploads/images/139644278/rectangle_large_type_2_b66a2fe15d1d7846ee20c69d17cae4ae.png?width=1200)
【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字
この記事が気に入ったらサポートをしてみませんか?