• 締切済み

MT4のEAで時間決済の構文 MQLプログラミング

時間軸で簡単なエントリーとクローズを考えていますが本に書いてありません。 どなたか構文わかる方いらっしゃいましたらお力貸して下さい。 売買時間(日本時間)7:05~7:40まで 7:05にbuyオーダーを実行する 7:40に上記ポジションを無条件で決済する 宜しくお願いします。

みんなの回答

  • Saitar
  • ベストアンサー率41% (192/464)
回答No.1

全部書いたら勉強にならないので、、、 7:05(日本時間)になったら、をMQLで書くと、 if(TimeHour(TimeLocal()) == 7 && TimeMinute(TimeLocal()) == 5) となります。 但し、パソコンの時計が合っていることが条件ですけど ^^;

関連するQ&A

  • MQL4のプログラミングについて

    自動売買システムのプログラミングで、シグナルにより自動的にとったポジションから"x"Pipsの利食いで決済させる("x"はメタトレーダー上で指定できる)プログラムを書きたいのですが、どう書けばいいのか全く分かりません。 決済の条件を変えればいいのか、シグナルが出たときの注文方法を変えればいいのか等々・・・>< 具体的には、下記のページでダウンロードできるサンプルに"MACrossPS_Exp"という名前のファイルがあるのですが、このプログラムのシステムでとったポジションを次のシグナルが出ずとも{"x"Pipsの利食いで決済する}という条件を入れたいのです。 http://www.panrolling.com/books/gr/gr56.html プログラミングについて触れるのもこれが初めてで、かなり初歩的な事も分からない状態なのですが是非アドバイスいただけるとうれしいです。 よろしくお願いします。

  • MT4のEAで通貨ペア毎に最大ポジション数を設定出来るものをプログラムしたい

    現在MT4で独自のEAを作ろうとプログラムの勉強をしているのですが、 同じEAを同時に複数の通貨ペアで動かし、尚且つ1通貨ペア当たりの同時に持てる最大ポジション数を使用者側で(Externで)設定出来るようにしたいです。 具体的に言いますと、同時に持てるポジションの数を USDJPYは最大2つ GBPJPYは最大3つ AUDJPYは最大1つ と、設定して上記3つの通貨ペアで同じEAを動かした時に、 ポジションの合計が上記通り(最大で6個)になるようなものを作りたいのですが、 どうしたらよいのでしょうか? (プログラム上部) extern int MaxOrder=2; //使用者側で設定出来る同時に持てる最大ポジション数 (int start()内) int order=0; for(int i=OrdersTotal()-1; i>=0; i- -) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) order=order+1; } if(order>0) {  if(決済条件)  {  決済プログラム;  } } if(order<MaxOrder) {  if(エントリー条件)  {  エントリープログラム;  } } みたいなプログラムでやってみたり、実は他にもいろいろと試しているのですが、うまくいきません。 プログラム初心者なので出来れば詳細に教えていただけると助かります。 宜しくお願い致します。

  • ★ MT4のEAで待ち時間を設定する ★

    いつもご質問に答えていただいてありがとうございます。 メタトレーダーのEAの自作に挑戦しているのですが うまく動作せず困っています。(注文が執行されない)。 EAの内容は、 ストップロスでポジションが無くなったあと、 5分間ウェイト時間をおいてから、 次の買いの条件になったら(BB下を割ったら) 買い注文を出す、というものです。 すいませんが何かヒントを教えてくださいませんでしょうか? Sleep関数を使ってもうまくいきませんでした… // ポジションチェック 無し if(CurrentPosition == -1){    if (BarCount != Bars) { BarCount = Bars; if (WaitTime != 0) WaitTime--; }   if(WaitTime <= 0)  {     //買いサイン      if(iClose(NULL,0,0) < iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0)){       //買いポジション       Ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, Ask-(200*Point), Ask+(400*Point), "Buy", 0, 0, Blue);      //ストップロスかかったとこでWaitTimeを5分にセットする WaitTime = 5;  }   } }

  • MT4のEAがエントリーしません

    上向きの移動平均線をローソク足が下から抜けたら買いエントリーし、4本値すべて移動平均線の下にいったらイグジット、売りは逆というEAをiCutomの本を見ながら作ってみたのですが、ポンド円の一分足で半日稼働したけれど全くエントリーしませんでした。どこがわるいのでしょうか?宜しくお願いします。(以下が内容です)因みにコンパイルしてエラーはありませんでした。 // マジックナンバーの定義 #define MAGIC 5582 // パラメーターの設定// extern int MA_Period = 21; // 短期移動平均線の期間設定 extern int MA_Shift = 0; // 移動平均を右にシフトするバー数の設定 extern int MA_Method = 0; // 移動平均方法の設定 extern double Lots = 1.0; // 取引ロット数 extern int Slip = 100; // 許容スリッページ数 extern string Comments = " "; // コメント // 変数の設定// int Ticket_L = 0; // 買い注文の結果をキャッチする変数 int Ticket_S = 0; // 売り注文の結果をキャッチする変数 int Exit_L = 0; // 買いポジションの決済注文の結果をキャッチする変数 int Exit_S = 0; // 売りポジションの決済注文の結果をキャッチする変数 double MA_2 = 0; double MA_1 = 0; int start() { MA_2 = iCustom(NULL,0,"Moving Averages",MA_Period,MA_Shift,MA_Method,0,2); MA_1 = iCustom(NULL,0,"Moving Averages",MA_Period,MA_Shift,MA_Method,0,1); // 買いポジションのエグジット if( MA_1 >= High[1] && ( Ticket_L != 0 && Ticket_L != -1 )) { Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red); if( Exit_L ==1 ) {Ticket_L = 0;} } // 売りポジションのエグジット if( MA_1 <= Low[1] && ( Ticket_S != 0 && Ticket_S != -1 )) { Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue); if( Exit_S ==1 ) {Ticket_S = 0;} } // 買いエントリー if( MA_2 <= MA_1 && MA_1 > Open[1]&& MA_1 > Close[1] && ( Ticket_L == 0 || Ticket_L == -1 ) && ( Ticket_S == 0 || Ticket_S == -1 )) { Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red); } // 売りエントリー if( MA_2 >= MA_1 && MA_1 < Open[1]&& MA_1 > Close[1] && ( Ticket_S == 0 || Ticket_S == -1 ) && ( Ticket_L == 0 || Ticket_L == -1 )) { Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue); } return(0); }

  • MT4でのカウントダウン方式でのEAについて

    MT4初心者です。 サイバーエージェントMT4のデモトレードでEA作成にチャレンジしております。 EAのプログラムではストップロスの値幅とテイクプロフィットの値幅をexternでパラメーターに設定し、OrderSend関数の引数として代入していたのですが、サイバーエージェントではカウントダウン注文方式なので、エントリーの際にOrderSend関数でスリッページとストップロス、テイクプロフィットの値を0にしないとエントリーが出来ない事を知りました。 とりあえず、上記の値を0にしデモトレードをしてみたのですが、エントリーには成功しました。 ただ、エントリーは出来ても当然、指値・逆指値の注文が入らないので、エントリー後に注文を入れようと思い、OrderModfiyの関数を使ってみて下記の様なプログラムを組んでみたのですが、エントリー後もOCO注文は入りません。 MyOrderSendSL(OP_BUY, Lots, Ask, 0, 0, 0, COMMENT, MAGIC); OrderModify(OrderTicket(), 0, OrderOpenPrice()-SLpips*Point, OrderOpenPrice()+TPpips*Point, 0); 初心者の為、全くのおかど違いな事をしているのかも分からない状態です。 エントリー後、直ぐににオープンポジション(約定値)に対してのOCO注文(出来れば値幅をパラメーターとした注文)のプログラムの組み方をご存知の方がいらっしゃいましたら教えていただけますでしょうか。

  • MT4(MQL)の初歩がわかりません

    こんにちは、どうかよろしくお願いします MT4(MQL)をはじめたばかりです。 基本的な質問で恐縮ですが、根本が理解できておりません。 幾つか教えて頂きたいのです。 <質問1> MQLで記述したコードはチャートに組み込んで実行していくのは理解できたのですが、2つの異なる時間枠(週足と日足)などの複合的な条件で売買をするシステムは2つのチャートが必要です。このような事はMQLで実装可能でしょうか? 例えば、週足のテクニカル指標のシグナルと日足のテクニカル指標のシグナルとを確認した上で売買を実行するなどです。 <質問2> 初心者向けMQL関連の書籍(非常に親切で解りやすくとてもありがたい書籍です) を拝読したところ、テクニカル指標(MA)を表示するサンプルプログラム(Custom Indicator)と実際にMAのシグナルで売買するサンプルプログラム(Expert Advisor)の2つの例がありました。 Expert Advisor側のサンプルプログラムの中でiMA()という組込み関数が使用されてました。組込みとはMT4に元々用意されていたMAを呼び出したと理解しておりますが、そうすうるとCustom Indicatorで作成されチャート上に表示されたMAとは、関連性が無くそれぞれ独立したシステムなのでしょうか? 仮に私オリジナルのテクニカル指標をExpert Advisor側で作成してチャートに表示させても、Expert Advisor側でそのシグナルは関連付けできないのでExpert Advisor側でもそれと同じテクニカル指標のコードを記述するとこで、トレードシグナルと判断させることがMT4の基本的な考え方なのでしょうか? それともCustom Indicatorのテクニカル指標のシグナルを受取ってExpert Advisor側で判断できる方法もあるのでしょうか?MT4的な考え方が漠然としていて、よく理解できないのです <質問3> 上記質問の関連ですが、MAのシグナルで売買するExpert Advisor側のプログラムを仮に作成してチャートに組込んで使用する場合、そのチャートにMAが表示されていないとiMA()という組込み関数はデータを取得できないのでしょいうか?

  • MT4のEAに関して質問です

    MT4のEAに興味を持ち、以前もこのサイトに質問したことがあります。 http://okwave.jp/qa/q7406815.html ご回答いただいた書籍を購入し連休前ぐらいから勉強し始めて、EAのプログラムを見て正確にではありませんが、プログラムで実行しようとしていることが分かるようになってきました。 完璧には理解していないのですが、まずは習うより慣れろ的な感覚で、購入した書籍に記載されているサンプルプログラム(ボリンジャーバンドを使った逆張り)をちょっといじってバックテストをしてみました。 バックテストは一応、問題無く実行されましたが、プログラムが現在のローソク足でエントリーするものなので、 デモトレードで売買が成立する所を見てみたいと思い、実行してみましたが、 expert function calls are not allowed; 'MyLib'-'MyCurrentOrders' という文がターミナルウィンドのExpertsの部分に表示されて expert stoppedと表示され、EAが作動してないような感じです。 これは何が原因で起きているのでしょうか? 又、どのようにしたら、EAが作動するようになるのでしょうか? 因みに、プログラムの最初の行に#include<MyLib.mqh>と書いて、ライブラリー化された注文に関する関数のプrグラムファイルを読み込んでいると思います。 本来なら、プログラムを記載して質問した方が分かりやすいのでしょうが、本に記載されているものであり、著作権の問題に触れるのではと思って、プログラムは記載しておりませんが、お分かりの方がいらっしゃいましたら教えていただけますでしょうか。

  • ビットフライヤーライトニングで建玉を決済できません

    何故か建玉が決済できなくなり、かなり困っています。 反対売買のオーダーを出して決済すると、 「買いポジションから売り戻す→建玉に売りポジションが表示される→売りポジションから買い戻す→建玉に買いポジションが表示される」 の繰り返しになり、全然建玉の決済を終えられなくなってしまいました。 あるサイトに「同量の反対売買を行うことで損益が確定します。」とありましたので、ライトニングの画面の左下にある建玉の数字の部分をクリックし、Simple Orderで同量の反対売買を行っても必ず上と同じイタチごっこ状態に戻ってしまいます。 どなたか解決方法を教えて下さい。 必要な情報があれば、ここに載せます。 宜しくお願い致します。

  • MT4 MQL4 プログラミングについて(その2)

    こんにちは。 プログラミング初心者の方で、MQL4を勉強してる方におききします。 巷に出回っているMQL4関連の書籍で、勉強していて 「もっとこういう風に改善してほしい(例えば、XXが分かりにくいので、YYのように改善して欲しい)」 「こういったプログラミング教本があったらいいな。」とか、 みなさんが不満に思っている点、改善してほしい点等ありましたら、教えていただけないでしょうか? 私もプログラミング初心者で、MQL4を勉強しているものですが、みなさんのそうした意見が あれば、自分の学習にも、同じ境遇にある他の方にも役に立つと思います。 ですので、遠慮せずどしどし意見を頂ければ助かります。 よろしくお願いします。 追)誹謗・中傷や揶揄いの発言や非建設的な意見は、ご遠慮頂きますようお願いします。

  • MT4 MQL4のプログラミングについて

    こんにちは。 FX自動売買に興味があり、MT4 MQL4のプログラミング言語を独学で勉強しています。 巷に出回っている書籍を参考にしながら、自分でプログラム組んでいますが、色々わからない ことがどうしても出できます。近くに聞ける人はいません。 自分と同じような境遇の人と話をして、議論してみたいのですが、そうした人たちと出会う方法 が皆目見当がつきません。 もし、そういう方をご存知でしたら、私にご紹介いただけないでしょうか? もしくは、そういう人と出会う場所とか、方法(ネットを使った方法でも、ネットを 使わない方法でもどちらでもかまいません)もご存知であれば、情報をご提供 頂けますと助かります。 よろしくお願いします。 追)誹謗・中傷や揶揄いの投稿はご遠慮ください。真面目なご返事お願いします。