水平の罫線1
水平の罫線3
Word
# Code...
参照
2つつなげることで入れ子にできます
3つまでできます
太字1
太字2
斜体1
斜体2
打ち消し線
++下線付きテキスト++
マークテキスト
19th
H2O
© © ® ® ™ ™ § § ±
😉 😆 😋 😢
😃 😦 😎 😉
リスト(箇条書き)
リストの作成は先頭に
+
-
または*
で始めることによってリストを作成できます
リスト(段落番号)
テーブル
名前 | 説明 |
---|---|
EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
テーブル(カラムを右寄せ)
名前 | 説明 |
---|---|
EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
リンク
GogoJungle
画像
タイトルが入力されていません。
コンテンツがありません。
There have no category
There have no subcategory
下記記事の中に、
・MQL4プログラミングにおけるマジックナンバーとは?
https://labo.gogojungle.co.jp/articles/76
「1つのEAで複数のマジックナンバーを使用する場合もあります。このとき使用する全てのマジックナンバーを外部パラメータにすれば問題はありません。」
と記載がありますが、MQL5でも同様の考え方でプログラミングは可能なのでしょうか?
MQL4では、外部パラメータ指定のマジックナンバーでオーダーから約定までを管理することで、価格帯によって注文数やロットなどをコントロールできることは確認ができました。
MQL5では、ポジション、オーダー、ディールなど注文についての仕様が細かく取引も構造体になってますが、1つのEAで複数マジックナンバー指定することで短いコードでEA内注文管理ができるのではないかと考えての質問です。
見解を教えていただければ幸いです。
コメント文がありません。
水平の罫線1
水平の罫線3
Word
# Code...
参照
2つつなげることで入れ子にできます
3つまでできます
太字1
太字2
斜体1
斜体2
打ち消し線
++下線付きテキスト++
マークテキスト
19th
H2O
© © ® ® ™ ™ § § ±
😉 😆 😋 😢
😃 😦 😎 😉
リスト(箇条書き)
リストの作成は先頭に
+
-
または*
で始めることによってリストを作成できます
リスト(段落番号)
テーブル
名前 | 説明 |
---|---|
EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
テーブル(カラムを右寄せ)
名前 | 説明 |
---|---|
EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
リンク
GogoJungle
画像
水平の罫線1
水平の罫線3
Word
# Code...
参照
2つつなげることで入れ子にできます
3つまでできます
太字1
太字2
斜体1
斜体2
打ち消し線
++下線付きテキスト++
マークテキスト
19th
H2O
© © ® ® ™ ™ § § ±
😉 😆 😋 😢
😃 😦 😎 😉
リスト(箇条書き)
リストの作成は先頭に
+
-
または*
で始めることによってリストを作成できます
リスト(段落番号)
テーブル
名前 | 説明 |
---|---|
EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
テーブル(カラムを右寄せ)
名前 | 説明 |
---|---|
EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
リンク
GogoJungle
画像
検索結果がありません。 |
検索結果がありません。 |
MQL5でも同様の考え方でプログラミングは可能でございます。
下記は、パラメーターでマジックナンバー 123456 を指定するサンプルでございます。
ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。
どうもありがとうございます。
頂戴したサンプルへ追記などして、MQL5でも複数マジックナンバーを設定できることを確認できました。
これを踏まえて実装できたらよいと思っているのですが、
1つのEA内でマジックナンバーを横串(ユニークIDのように使って)として、ロットや価格帯、注文数、発注タイミングなどを管理したいです。
グローバル変数でマジックナンバーをはじめとしてほかの変数を定義しておいて、意図したタイミングで逆指値注文をするというようなものです。
MQL4でいう、下記のようなものを作成したいのですが、どのようにすればよいのでしょうか?
int magic[100] = {100,101,102, … ,199};
int lots[3] = {0.1,0.2,0.3};
int tgr[100] = ****
int price[100] = ****
void OnTick()
{
int posi[100];ArrayInitialize(posi,0);
for(int i = 0; i < OrdersTotal(); i++){if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) break;
for(int i = 0; i < 100; i++){if(OrderMagicNumber() == magic[i]){if(OrderCloseTime() == 0) {posi[i] = 99;}} }
int sign[100];ArrayInitialize(sign,0);
for(int i = 0; i < 100; i++){if(Ask > tgr[i] && pogi[i] != 99 ){ssign[e] = 88;}};
for(int i = 0; i < 100; i++){if(sign[i] == 88){if(OrderSend(Symbol(), OP_SELLSTOP, lots[2], price[**], 0, stoploss, takeprofit, NULL, magic[i], 0, clrRed)==true){};}}
}}
MQL5のフォーラムなどを参考にいろいろ探し、試したのですが、
PositionsTotal()やOrdersTotal()ぶんループさせて合致するマジックナンバーを取り出すというような処理では、なぜかずれてしまってうまくいきません。
八方ふさがりとなり、ここで質問させていただきました。
なにかヒントがあると助かります。。
逆指値注文が少ないことが前提でございますが、1つのEAを作成し、EAをチャート適用時に
シンプルなパラメーター(配列ではない)を都度変更すれば、問題ないかと存じます。
逆指値注文が多い場合は、複数のマジックナンバーを定義する必要性も含めまして
差し支えなければ、どのようなロジックかご説明いただければ幸いでございます。
ご返信ありがとうございます。
いろいろ試してみてできました。
ずれていた原因は、PositionGetTicket関数でインデックス番号を取得してループ処理する際に、
先日投稿したような「(int i = 0; i < OrdersTotal(); i++)」と前から処理するのではなく、「for (int i = PositionsTotal(); i >= 0; i–)」として後ろから処理していく手順にしていなかったためでした。