質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

Q&A

解決済

1回答

3068閲覧

一目均衡表の雲のねじれにてエントリーするEA

basho

総合スコア1

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

0グッド

0クリップ

投稿2020/05/30 09:48

MQL4にて一目均衡表の雲のねじれに応じて注文をするEAを作ろうと考えています。関数であるiIchimokuを使用して1日前と2日前の先行スパンの位置関係が逆転する場所にてエントリーするロジックを書きたいのですが、この関数で表記しても正しい数値が返されませんでした。
お手数をおかけしますが、iIchimokuにて雲のねじれを表現するコードを教えていただきたいです。

MQL4

1 2double Tenkan_1 = iIchimoku(Symbol(),0,9,26,52,3,1); 3double Tenkan_2 = iIchimoku(Symbol(),0,9,26,52,3,2); 4double Kijun_1 = iIchimoku(Symbol(),0,9,26,52,4,1); 5double Kijun_2 = iIchimoku(Symbol(),0,9,26,52,4,2); 6 7input double Lots = 0.5; 8 9int Ticket = 0; //チケット番号 10 11//ティック時実行関数 12void OnTick() 13{ 14 int pos = 0; //ポジションの状態 15 //未決済ポジションの有無 16 if(OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime() == 0) 17 { 18 if(OrderType() == OP_BUY) pos = 1; //買いポジション 19 if(OrderType() == OP_SELL) pos = -1; //売りポジション 20 } 21 22 bool ret; //決済状況 23 if(Tenkan_2 <= Kijun_2 && Tenkan_1 > Kijun_1) //買いシグナル 24 { 25 //売りポジションがあれば決済注文 26 if(pos < 0) 27 { 28 ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); 29 if(ret) pos = 0; //決済成功すればポジションなしに 30 } 31 //ポジションがなければ買い注文 32 if(pos == 0) Ticket = OrderSend(_Symbol, OP_BUY, Lots, Ask, 0, 0, 0); 33 } 34 if(Tenkan_2 >= Kijun_2 && Tenkan_1 < Kijun_1) //売りシグナル 35 { 36 //買いポジションがあれば決済注文 37 if(pos > 0) 38 { 39 ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); 40 if(ret) pos = 0; //決済成功すればポジションなしに 41 } 42 //ポジションがなければ売り注文 43 if(pos == 0) Ticket = OrderSend(_Symbol, OP_SELL, Lots, Bid, 0, 0, 0); 44 } 45}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

インジケータの計算は毎回やらないといけません。

MQL4

1input double Lots = 0.5; 2 3int Ticket = 0; //チケット番号 4 5//ティック時実行関数 6void OnTick() 7{ 8 double Tenkan_1 = iIchimoku(Symbol(),0,9,26,52,3,1); 9 double Tenkan_2 = iIchimoku(Symbol(),0,9,26,52,3,2); 10 double Kijun_1 = iIchimoku(Symbol(),0,9,26,52,4,1); 11 double Kijun_2 = iIchimoku(Symbol(),0,9,26,52,4,2); 12 13 int pos = 0; //ポジションの状態 14 //未決済ポジションの有無 15 if(OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime() == 0) 16 { 17 if(OrderType() == OP_BUY) pos = 1; //買いポジション 18 if(OrderType() == OP_SELL) pos = -1; //売りポジション 19 } 20 21 bool ret; //決済状況 22 if(Tenkan_2 <= Kijun_2 && Tenkan_1 > Kijun_1) //買いシグナル 23 { 24 //売りポジションがあれば決済注文 25 if(pos < 0) 26 { 27 ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); 28 if(ret) pos = 0; //決済成功すればポジションなしに 29 } 30 //ポジションがなければ買い注文 31 if(pos == 0) Ticket = OrderSend(_Symbol, OP_BUY, Lots, Ask, 0, 0, 0); 32 } 33 if(Tenkan_2 >= Kijun_2 && Tenkan_1 < Kijun_1) //売りシグナル 34 { 35 //買いポジションがあれば決済注文 36 if(pos > 0) 37 { 38 ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); 39 if(ret) pos = 0; //決済成功すればポジションなしに 40 } 41 //ポジションがなければ売り注文 42 if(pos == 0) Ticket = OrderSend(_Symbol, OP_SELL, Lots, Bid, 0, 0, 0); 43 } 44}

投稿2020/05/30 12:53

mah

総合スコア591

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問