MT4で時間を指定するにはどのようにすれば良いでしょうか。
例えば、取引を日本時間で午前9時から午後3時の間に指定して、午後3時の時点で建て玉があった場合は手仕舞いできるようにしたいのです。
MT4付属EAの、MACD Sampleで時間指定する場合は、どのようなプログラムをどの位置に書けば良いのでしょうか。
時間指定をいろいろ変えてバックテストを行ってみたいと思っています。
プログラムは、トレードスタジアムで少しやった程度ですので、MT4のプログラムは初心者のレベルです。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
回答が大変遅くなってごめんなさい。
実は、私も悩んでいました。
MACDのサンプルプログラムを下の方までよく読んでみると、マジックナンバーが16384となっているので、これに統一しなければ決済されません。
よって、私が書いた最初の部分で、
# define MAGIC 0001
という部分を、
# define MAGIC 16384
としていただければ、うまくいくかと思います。
一時やってみてください。
再度のご回答ありがとうございます。
ご指示のようにマジックナンバーを統一し、5・15・30・60分足でバックテストしたところ、無事に9時から15時の間に取引を行い、ポジションが残ったら15時にクローズすることができました。
この時間制限を使用して、いろいろな条件でバックテストしてみようと思っています。
ちなみにUSDJPNの5分足で2009年10月から2010年1月までをバックテストしましたらきれいな右肩下がりのグラフになりました。ひょっとして売りと買いを逆にすれば良いのかと思いました。
MT4のEAは、まだまだ理解が足りませんのでこれからも勉強していきたいと思っています。
今回は、ご親切に教えて頂き有難うございました。感謝しております。
No.1
- 回答日時:
当方のメタトレーダーの調子が悪く、きちんと実験できませんでしたが、おおよそ、以下のような感じでいかがでしょうか。
このプログラムでは、あくまでも、チャート上の時刻(サーバーの時刻)が基準になります。日本時間とは必ずしも一致しないので、ご注意ください。
int init()
{
return(0);
}
int deinit()
{
return(0);
}
#define MAGIC 0001
//外部パラメーター
extern double TakeProfit = 50;
extern double Lots = 0.1;
extern int Slip = 3;
extern double TrailingStop = 30;
extern double MACDOpenLevel=3;
extern double MACDCloseLevel=2;
extern double MATrendPeriod=26;
extern int StartTime = 9;//トレード開始時刻
extern int EndTime = 15;//トレード終了時刻
//ポジション決済関数
void ClosePos(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS) == false) break;
if(OrderSymbol() != Symbol() || OrderMagicNumber() != magic) continue;
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slip,White);
break;
}
}
}
int start()
{
double MacdCurrent, MacdPrevious, SignalCurrent;
double SignalPrevious, MaCurrent, MaPrevious;
int cnt, ticket, total;
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0);
}
//トレード可否
if(IsTradeAllowed()==false) return(0);
//時間設定
int Jikoku=0;
int Ji = TimeHour(CurTime());
if(Ji>=StartTime && Ji<EndTime) Jikoku=1;
else Jikoku=0;
if(Jikoku==0)
{
ClosePos(MAGIC);
return(0);
}
MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);
total=OrdersTotal();
if(total<1)
以下、サンプル通り。
この回答への補足
プログラムを見直し、USDJPNの15分足で同じ期間でバックテストしてみました。
取引回数は44回あり、新規の注文は9時から15時の間に行われていますが、決済は15時を過ぎることが多々あります。(時間はチャート時間を使用)
15時までにポジションが残っていた時に、15時で決済されないようです。どのようにすれば15時で決済されるのでしょうか。
もう一度教えていただけないでしょうか。よろしくお願いします。
早速のご回答ありがとうございます。
チャートの時刻と日本時間のずれを考慮して設定すれば良いのですね。
上記のとうりにEAを作り、2009年10月から今年1月末迄でバックテストを行いました。
時間はチャートの時刻で9時から15時にしてみました。USDJPNの1分足です。
結果を見ますと、15時に手仕舞いしないで翌営業日に持ち越すものがあります。そして翌営業日に持ち越すものは負けが多いようです。
しかし、当日に手仕舞いするものは、すべて勝っています。
エントリー回数が意外と少ないようです。(4ヶ月間で8回)
まだ、詳しく見直していませんので、見直しを行いいろいろな時間設定でも検証したいと思っています。
詳しいプログラムを教えて頂き大変助かりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 郵便・宅配 時間指定なしとは? 2 2022/10/21 08:05
- その他(悩み相談・人生相談) 中学3年生です!2つの高校で迷っています… どちらに通った方が後悔しないと思いますか? またA高校に 7 2023/02/06 16:55
- その他(悩み相談・人生相談) 中学3年生です!2つの高校で迷っています… どちらに通った方が後悔しないと思いますか? またA高校に 3 2023/02/06 16:59
- 会社・職場 夜勤中の眠気について 3 2022/09/02 07:49
- 郵便・宅配 佐川急便の代引きで東京に昨日午後2時に発送ました。いまは関西中継センターにあります配達時間指定で午前 3 2023/01/24 07:09
- 発達障害・ダウン症・自閉症 精神障がい者の就職 2 2023/05/10 04:44
- 地図・道路 高速道路、夜間割引について 2 2022/10/12 21:22
- 薬剤師・登録販売者・MR 明日午後に調剤薬局で薬を受け取る事になりそうです。病院に受診するのに指定された時間が12時なので、薬 2 2022/07/22 14:22
- 大学受験 偏差値40後半の高2が国公立の薬学部を目指すには、一日何時間勉強すれば良いでしょうか? お恥ずかしい 7 2022/05/18 22:58
- 車検・修理・メンテナンス ブレニー技研 ジーナス GM-8300 1 2023/03/05 18:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1ドル155円に迫っています。 こ...
-
給与所得と為替利益だけだと、...
-
投資いま下がってますが、 買っ...
-
こんなに円安が進行しているの...
-
1ドル300円まで行きますか?
-
トレーダーっていくら利益出て...
-
為替相場の決まり方
-
このままアメリカのインフレが...
-
親類が投資詐欺に遭ってるかも...
-
レートの計算方法がわかりませ...
-
円相場ですが一長一短あります...
-
1ドル154円後半なのになぜ為替...
-
今の円安の、原因はなんでしょ...
-
現在、かなり円安、ドル高にな...
-
為替介入の影響を受けない通貨...
-
YouTubeとか書籍でFXで五万円を...
-
マイナス金利を解除すると円安...
-
質問です
-
日銀の政策金利発表で円安が進...
-
ドル/円が1ドル100円以下の時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2回戦止まりは2回戦は勝ってい...
-
mql4のコンパイルエラー箇所の...
-
MT4によるバックテストの信頼性...
-
MT4で時間を指定するにはどのよ...
-
MT4で取引時間を指定する。
-
MT4のEAで通貨ペア毎に最...
-
メタトレーダ4で自動売買をした...
-
【FX】MT4にてプログラムを作成...
-
MT4におけるトレーリングス...
-
MT4 ボリンジャーバンドタッチ...
-
Tera Termが途中で切れるのです...
-
遠藤さくらと言う人が、毎日100...
-
80歳の高齢者ですが、金融庁に...
-
為替データをエクセルにダウン...
-
MT4のHeiken Ashi Smoothedをサ...
-
FXの日足時系列データをダウン...
-
MT5のBIT(売り)ASK(買い)のライ...
-
【MQL4】ZigZagの天底の値の取得
-
MT4 フォワードテストってどう...
-
陽線・陰線が切り替わったらア...
おすすめ情報