電子書籍の厳選無料作品が豊富!

メタトレーダ4で自動売買をしたくて、プログラムを組んでいるのですがやりたい事が出来なくて困っておりますのでご教授お願い致します。

取引業者は121証券を使用しております。
対象通貨は円ドルです。

■自動売買ルール
1、毎日指定した時間にエントリー
2、10pintマイナスで損切り or 20pintプラスで手仕舞い

以上となります、何卒宜しくお願い致します。

A 回答 (1件)

まず、121証券では、20pips以内の小さな(逆)指値はできなかったと思います。

ご自身でご確認ください。

あと、質問内容から、MQLプログラミングの初心者の方と思われますが、EAによる自動売買は、通信エラーや多重発注などの事故が多発しています。こういった掲示板で他人から教えてもらった付け焼刃的な知識による運用は非常に危険だと思いますので、焦らずに基本からMQLをしっかり勉強して、自分自身で完全に納得したかたちでEAを書いた方がよいと思います。

一応、サンプルプログラムを紹介します。

以下のプログラムは、

1.毎朝午前9:00に1分間だけエントリーを許可する
2.ロット数は0.1ロット
3.ポジションは1つだけで、複数は持たない
4.買い注文のみ

という条件に設定してあります。

くれぐれも「参考」ということでどうぞ。

//マジックナンバー
#define MAGIC 0001

//パラメーター
extern double Lots = 0.1;
extern int Slip = 3;
extern double SL = 0.1;
extern double TP = 0.2;
extern int StartTime_H = 9;//エントリー時刻(時)・
extern int StartTime_M = 00;//エントリー時刻(分)

//スタート関数
int start()
{
//トレード可否
if(Volume[0]>1 || IsTradeAllowed()==false) return(0);

//ポジション数の確認
int Pos = 0;
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) Pos++;
}
}

//時間設定
int Jikoku = 0;
int Ji = TimeHour(CurTime());
int Fun = TimeMinute(CurTime());
if(Ji==StartTime_H && Fun==StartTime_M) Jikoku=1;
else Jikoku = 0;

//買いシグナル
int ticket = 0;
if(Jikoku==1 && Pos==0)
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,Ask-SL,Ask+TP,"",MAGIC,0);

return(0);
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!