タイトルが入力されていません。
コンテンツがありません。
There have no category
There have no subcategory
①平均足 始値 終値 適用MQL 数値が違ている? ②平均足の 安値 高値 が MQLでは 実ローソク足のロジックになっている?
ご質問いただき、誠にありがとうございます。 お送りいただいた内容について確認いたしました。
まず、平均足インジケーターのデータウィンドウ上では、 画像の上から順に「0, 1, 2, 3」という並びでバッファのインデックスが設定されています。 それぞれの内容は以下の通りです:
バッファ0:Low/High(平均足の安値) バッファ1:High/Low(平均足の高値) バッファ2:Open(平均足の始値) バッファ3:Close(平均足の終値)
したがって、始値と終値は下から2つ目と1番下に表示されており、それぞれ「2」「3」のバッファに対応しています。
また、平均足の高値/安値はローソク足の高値/安値と一致いたします。 計算効率を重視し、平均足の高値・安値についてはカスタムインジケーターの値を参照するのではなく、ローソク足の関数 iHigh / iLow をそのまま利用しております。
このため、計算速度が速く、かつ平均足の値と完全に一致する仕様となっております。
丁寧にご確認くださりありがとうございます。 引き続きどうぞよろしくお願いいたします。
ご教示ありがとうございます。
①バッファ数値の件 承知いたしました。
②について 実現したい事 (エントリ条件の一つとして) 平均足 上げ 下髭無し 平均足 始値(1本前)= 平均足 安値(1本前) 平均足下げ 上髭無し 平均足 始値(1本前)= 平均足 高値(1本前)
と設定して組んだところ 平均足 上げ 下髭無し 平均足 始値(1本前)=平均足 安値(1本前) については 反応しエントリ実現 平均足下げ 上髭無し 平均足 始値(1本前)=平均足 高値(1本前) については 反応せず
その為、MQL確認しての指摘(疑問)をさせていただきました。
高値・安値が ローソク足で設定されているとすれば 「=」 になることは ほぼない ので 成立しないのもわかるのですが
※上げ 下髭無し については ほぼ反応したはず・・このことは不明なのですが・・・。 この件は 置いといて
平均足下げ 上髭無し 平均足 始値(1本前)=> 平均足 高値(1本前) と表現し 平均足 始値(1本前)=>ローソク足 高値(1本前) を実現させている(計算効率重視)
と理解いたしました。
ありがとうございました。 引き続きどうぞよろしくお願い申し上げます。
追伸ご無礼いたします。
上記 理解しました と申し上げておきながら・・・(何か モヤモヤしておりまして・・・)
平均足 上げ 下髭無し 平均足 始値(1本前)= 平均足 安値(1本前) 平均足下げ 上髭無し 平均足 始値(1本前)= 平均足 高値(1本前)
多分 他のユーザの方々も 直感的には 平均足を利用しての表現となれば 上記の様になるはず・・。 となれば、同じような事象(整合性が取れない)ケースはこれからも出るはず・・・。
>・・・ローソク足の関数 iHigh / iLow をそのまま利用・・・。
→「計算効率重視」とのこと。
1本前であれば 効率には変化がないと理解するのですが、効率に関係が出てくるのでしょうか?
0本前 の使用については そもそも 高値 安値が確定していないので 結果については保証できない。 つまり 平均足において ”髭無し” 表現において 0本前 を 使うこと自体あってはならない。(正しく成立しない)
誠に申し訳ございません。 「計算効率が良くなる」 という点 どういうときに 効率化 がある となるのでしょうか?(ここにモヤモヤがあります) 今後の為、ご教示いただけましたら幸いです。
追伸 2
もう一つ 誠に申し訳ございません。今後の為・・・(モヤモヤが残り)
下記設定 について バッファ0:Low/High(平均足の安値) バッファ1:High/Low(平均足の高値) バッファ2:Open(平均足の始値) バッファ3:Close(平均足の終値)
ググってみますと 平均足のバッファの順番とすると 始値 終値を 前半に もってくるのが通常例として あったため、先の質問となりました。 「バッファの定義は作成者に準拠する」とも書いてありました。
【質問①】 バッファ0:Low/High(平均足の安値) バッファ1:High/Low(平均足の高値) バッファ2:Open(平均足の始値) バッファ3:Close(平均足の終値)
は プログラム中に宣言してあるのでしょうか? 私では 探し出せず、宣言の箇所 ご教示いただけましたら幸いです。
【質問②】 宣言してない 場合、実際にデモで検証して 割り当てられた バッファ数値を 自身で探り当てるしか ない? となりますでしょうか? (作者に 質問しないとした場合)
ご教示何卒、宜しくお願い申し上げます。
ご報告の内容(「平均足のヒゲ無し判定が、上げ側は動くが下げ側は反応しない」「計算効率の話」「バッファ順と宣言場所」)を踏まえ、順に整理してご説明します。
EAつくーるの「平均足」項目では、始値・終値は平均足の値を返し、高値・安値は内部的に実ローソク足の High / Low(iHigh/iLow)を参照しています(=計算効率のため)。 このため、「ヒゲ無し」を等号(=)の厳密一致で組むと、小数点の丸め差や足の確定タイミングの影響で一致判定が崩れることがあります。特に「下げ・上ヒゲ無し(平均足の始値=高値)」側は一致しづらくなる傾向があります。
EAつくーるでは加減算はできませんが、「補正値」を使って上下から挟み込むことで許容誤差つきの等価判定を作れます。シンボルの最小ポイント(例:USDJPY(小数第3位)なら 0.001、JPY2桁の口座なら 0.01)を目安に、許容幅を 1~2ポイント程度に設定してください。
以下は 「1本前の足」での確定足判定の例です。
平均足(適用価格:終値, 計算位置:1本前) > 平均足(適用価格:始値, 計算位置:1本前) AND 平均足(適用価格:始値, 計算位置:1本前, 補正値:+0.01) >= 平均足(適用価格:安値, 計算位置:1本前) AND 平均足(適用価格:始値, 計算位置:1本前, 補正値:-0.01) <= 平均足(適用価格:安値, 計算位置:1本前) ↓ 買いエントリー
平均足(適用価格:終値, 計算位置:1本前) < 平均足(適用価格:始値, 計算位置:1本前) AND 平均足(適用価格:始値, 計算位置:1本前, 補正値:+0.01) >= 平均足(適用価格:高値, 計算位置:1本前) AND 平均足(適用価格:始値, 計算位置:1本前, 補正値:-0.01) <= 平均足(適用価格:高値, 計算位置:1本前) ↓ 売りエントリー
こうなっていませんか? 「計算位置」が 0本前のままになっている 許容幅(補正値)を使わず、=だけで判定している いずれも、片側だけ反応しない原因になります。上記の修正例をご確認ください。
こうなっていませんか?
max(実足高値, HA始値, HA終値)
min(実足安値, HA始値, HA終値)
該当インジケーターをチャートに適用。
データウィンドウで各ラインの値を確認し、どの番号が Open/Close/High/Low に対応するかを照合。
EAつくーるの「取引条件」→「カスタムインジケーター」を使い、
例えば、「平均足の“真の”High/Low(=max/min 振る舞い)」でヒゲ無しを厳密に取りたい場合は、MT付属の Heiken_Ashi を「カスタムインジケーター」で読み込み、データウィンドウでバッファ番号を確認のうえ、 上ヒゲ無し:HA高値(1本前) = max(HA始値, HA終値)(1本前) 下ヒゲ無し:HA安値(1本前) = min(HA始値, HA終値)(1本前) を、やはり補正値による許容幅で挟み込む形にしていただくのが堅実です。 (EAつくーるの標準「平均足(高値/安値)」は実足H/L参照のため、厳密に max/min を再現したい場合はこの方法が最も確実です。)
例えば、「平均足の“真の”High/Low(=max/min 振る舞い)」でヒゲ無しを厳密に取りたい場合は、MT付属の Heiken_Ashi を「カスタムインジケーター」で読み込み、データウィンドウでバッファ番号を確認のうえ、
HA高値(1本前) = max(HA始値, HA終値)(1本前)
HA安値(1本前) = min(HA始値, HA終値)(1本前)
上記の設定で、上げ・下げの双方でヒゲ無し判定の整合性が取れるはずです。仕様上できない部分(高値・安値の内部参照先)は、補正値テクニックまたはカスタムインジケーター参照で回避できます。
大変詳細にご説明を賜り、誠にありがとうございます。
1)「ヒゲ無し」を等号(=)の厳密一致で組むと、小数点の丸め差 の部分 →計算値の小数点が違っていても最終的に丸めてチャート計上の表記数値 小数点2桁表記なら 小数点3桁で四捨五入によって 小数点2桁での一致しているのだろう。 特に、1本前であるならば 確定しているのではと考えておりました。 「=」でなく バッファを持たせることで 「髭無し」を表現する事 承知いたしました。
なぜ「高値・安値は iHigh/iLow(実足)」にしているのか(効率の話) →内部で iCustomによる計算の負荷 や 平均足での表現となると 1)のような バッファ式などの面倒さ等 を含めて「効率」との効果理解しました。
「平均足バッファの順番」と宣言場所について →本件 ご指摘いただきましたMt4 平均足のデータウィンド開いてみましたところ データの並び順は 下記のような順番でした Low/High High/Low Open Close これが 上から0.1.2.3 ということであれば 貴社が使用されている 下記設定
が正しいのであり、私が調べた 方が 普通では無い という理解となります。 失礼いたしました。
本件、しつこく質問させていただてよかったです。 大変勉強になりました。
★平均足髭無し 条件式 利用させていただきます!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 【開発希望】 ローソク足構成(ヒゲ) 同様に 平均足構成(ヒゲ) の開発 期待しております。
ご検討の程、何卒宜しくお願い申し上げます。
追伸ご無礼いたします。 =============== こうなっていませんか?
「計算位置」が 0本前のままになっている 許容幅(補正値)を使わず、=だけで判定している いずれも、片側だけ反応しない原因になります。上記の修正例をご確認ください ===============
上記ご指摘賜りました件、ファイルを送り 確認していただこうと思い 再度、バックテストしてみました。 BUYも 一つも反応(エントリ)しませんでした。 ”キツネにつままれた”という思いです。 EA作成履歴をすべてみましたが全部、(1本前)であり (0本前)はありませんでした。 許容幅(補正値)は使用しておりません。
平均足(1本前)始値<平均足(1本前)終値 平均足(1本前)始値=平均足(1本前)安値 平均足(2本前)始値<平均足(2本前)終値 平均足(3本前)始値=>平均足(3本前)終値
で検証をしておりました。
そもそも Buyを複製して 不等号のみ逆にしてSELLを作成 バックテストでBUYはエントリできるのになぜ、SELLはしないのだ? との疑問を解決すべく エディタでMQLを確認させていただいたのが今回の質問の発端だったんです。 そんはなずない・・・と思いつつも結果がこの様であり(※ある意味では 安心 納得できました)
余計にお騒がせすることとなり、誠に申し訳ございせんでした。
この度は丁寧なご検証と詳細なご報告をいただき、誠にありがとうございました。
ご提案いただきました、 「平均足構成(ヒゲ)をローソク足構成同様に利用できるようにする」 といった機能拡張につきましては、今後の開発検討項目として社内で共有させていただきます。
今後ともEAつくーるをどうぞよろしくお願いいたします。
コメント文がありません。
ご質問いただき、誠にありがとうございます。
お送りいただいた内容について確認いたしました。
まず、平均足インジケーターのデータウィンドウ上では、
画像の上から順に「0, 1, 2, 3」という並びでバッファのインデックスが設定されています。
それぞれの内容は以下の通りです:
バッファ0:Low/High(平均足の安値)
バッファ1:High/Low(平均足の高値)
バッファ2:Open(平均足の始値)
バッファ3:Close(平均足の終値)
したがって、始値と終値は下から2つ目と1番下に表示されており、それぞれ「2」「3」のバッファに対応しています。
また、平均足の高値/安値はローソク足の高値/安値と一致いたします。
計算効率を重視し、平均足の高値・安値についてはカスタムインジケーターの値を参照するのではなく、ローソク足の関数 iHigh / iLow をそのまま利用しております。
このため、計算速度が速く、かつ平均足の値と完全に一致する仕様となっております。
丁寧にご確認くださりありがとうございます。
引き続きどうぞよろしくお願いいたします。
ご教示ありがとうございます。
①バッファ数値の件 承知いたしました。
②について
実現したい事 (エントリ条件の一つとして)
平均足 上げ 下髭無し 平均足 始値(1本前)= 平均足 安値(1本前)
平均足下げ 上髭無し 平均足 始値(1本前)= 平均足 高値(1本前)
と設定して組んだところ
平均足 上げ 下髭無し 平均足 始値(1本前)=平均足 安値(1本前) については 反応しエントリ実現
平均足下げ 上髭無し 平均足 始値(1本前)=平均足 高値(1本前) については 反応せず
その為、MQL確認しての指摘(疑問)をさせていただきました。
高値・安値が ローソク足で設定されているとすれば
「=」 になることは ほぼない ので 成立しないのもわかるのですが
※上げ 下髭無し については ほぼ反応したはず・・このことは不明なのですが・・・。
この件は 置いといて
平均足下げ 上髭無し 平均足 始値(1本前)=> 平均足 高値(1本前) と表現し
平均足 始値(1本前)=>ローソク足 高値(1本前) を実現させている(計算効率重視)
と理解いたしました。
ありがとうございました。
引き続きどうぞよろしくお願い申し上げます。
追伸ご無礼いたします。
上記 理解しました と申し上げておきながら・・・(何か モヤモヤしておりまして・・・)
平均足 上げ 下髭無し 平均足 始値(1本前)= 平均足 安値(1本前)
平均足下げ 上髭無し 平均足 始値(1本前)= 平均足 高値(1本前)
多分 他のユーザの方々も 直感的には 平均足を利用しての表現となれば 上記の様になるはず・・。
となれば、同じような事象(整合性が取れない)ケースはこれからも出るはず・・・。
>・・・ローソク足の関数 iHigh / iLow をそのまま利用・・・。
→「計算効率重視」とのこと。
1本前であれば 効率には変化がないと理解するのですが、効率に関係が出てくるのでしょうか?
0本前 の使用については そもそも 高値 安値が確定していないので 結果については保証できない。
つまり 平均足において ”髭無し” 表現において 0本前 を 使うこと自体あってはならない。(正しく成立しない)
誠に申し訳ございません。
「計算効率が良くなる」 という点 どういうときに 効率化 がある となるのでしょうか?(ここにモヤモヤがあります)
今後の為、ご教示いただけましたら幸いです。
追伸 2
もう一つ 誠に申し訳ございません。今後の為・・・(モヤモヤが残り)
下記設定 について
バッファ0:Low/High(平均足の安値)
バッファ1:High/Low(平均足の高値)
バッファ2:Open(平均足の始値)
バッファ3:Close(平均足の終値)
ググってみますと 平均足のバッファの順番とすると 始値 終値を 前半に もってくるのが通常例として
あったため、先の質問となりました。
「バッファの定義は作成者に準拠する」とも書いてありました。
【質問①】
バッファ0:Low/High(平均足の安値)
バッファ1:High/Low(平均足の高値)
バッファ2:Open(平均足の始値)
バッファ3:Close(平均足の終値)
は プログラム中に宣言してあるのでしょうか?
私では 探し出せず、宣言の箇所 ご教示いただけましたら幸いです。
【質問②】
宣言してない 場合、実際にデモで検証して 割り当てられた バッファ数値を
自身で探り当てるしか ない? となりますでしょうか? (作者に 質問しないとした場合)
ご教示何卒、宜しくお願い申し上げます。
ご報告の内容(「平均足のヒゲ無し判定が、上げ側は動くが下げ側は反応しない」「計算効率の話」「バッファ順と宣言場所」)を踏まえ、順に整理してご説明します。
1) 「平均足のヒゲ無し」が片側だけ反応しづらい理由と対処
EAつくーるの「平均足」項目では、始値・終値は平均足の値を返し、高値・安値は内部的に実ローソク足の High / Low(iHigh/iLow)を参照しています(=計算効率のため)。
このため、「ヒゲ無し」を等号(=)の厳密一致で組むと、小数点の丸め差や足の確定タイミングの影響で一致判定が崩れることがあります。特に「下げ・上ヒゲ無し(平均足の始値=高値)」側は一致しづらくなる傾向があります。
推奨:±許容幅で“実質的な一致”を判定する
EAつくーるでは加減算はできませんが、「補正値」を使って上下から挟み込むことで許容誤差つきの等価判定を作れます。シンボルの最小ポイント(例:USDJPY(小数第3位)なら 0.001、JPY2桁の口座なら 0.01)を目安に、許容幅を 1~2ポイント程度に設定してください。
以下は 「1本前の足」での確定足判定の例です。
上げ(陽線)・下ヒゲ無し
下げ(陰線)・上ヒゲ無し
2) なぜ「高値・安値は iHigh/iLow(実足)」にしているのか(効率の話)
max(実足高値, HA始値, HA終値)、Low はmin(実足安値, HA始値, HA終値)なので、実足H/Lを使ってもヒゲ判定に実用上の差が出にくいという背景もあります)。3) 「平均足バッファの順番」と宣言場所について
実務的なバッファ確認手順(作者に聞けない場合)
該当インジケーターをチャートに適用。
データウィンドウで各ラインの値を確認し、どの番号が Open/Close/High/Low に対応するかを照合。
EAつくーるの「取引条件」→「カスタムインジケーター」を使い、
を入力して参照します。
4) 仕上げのチェックポイント
上記の設定で、上げ・下げの双方でヒゲ無し判定の整合性が取れるはずです。仕様上できない部分(高値・安値の内部参照先)は、補正値テクニックまたはカスタムインジケーター参照で回避できます。
大変詳細にご説明を賜り、誠にありがとうございます。
1)「ヒゲ無し」を等号(=)の厳密一致で組むと、小数点の丸め差 の部分
→計算値の小数点が違っていても最終的に丸めてチャート計上の表記数値 小数点2桁表記なら
小数点3桁で四捨五入によって 小数点2桁での一致しているのだろう。
特に、1本前であるならば 確定しているのではと考えておりました。
「=」でなく バッファを持たせることで 「髭無し」を表現する事 承知いたしました。
なぜ「高値・安値は iHigh/iLow(実足)」にしているのか(効率の話)
→内部で iCustomによる計算の負荷 や 平均足での表現となると 1)のような バッファ式などの面倒さ等
を含めて「効率」との効果理解しました。
「平均足バッファの順番」と宣言場所について
→本件 ご指摘いただきましたMt4 平均足のデータウィンド開いてみましたところ
データの並び順は 下記のような順番でした
Low/High
High/Low
Open
Close
これが 上から0.1.2.3 ということであれば 貴社が使用されている 下記設定
バッファ0:Low/High(平均足の安値)
バッファ1:High/Low(平均足の高値)
バッファ2:Open(平均足の始値)
バッファ3:Close(平均足の終値)
が正しいのであり、私が調べた 方が 普通では無い という理解となります。
失礼いたしました。
本件、しつこく質問させていただてよかったです。
大変勉強になりました。
★平均足髭無し 条件式 利用させていただきます!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
【開発希望】
ローソク足構成(ヒゲ) 同様に
平均足構成(ヒゲ) の開発 期待しております。
ご検討の程、何卒宜しくお願い申し上げます。
追伸ご無礼いたします。
===============
こうなっていませんか?
「計算位置」が 0本前のままになっている
許容幅(補正値)を使わず、=だけで判定している
いずれも、片側だけ反応しない原因になります。上記の修正例をご確認ください
===============
上記ご指摘賜りました件、ファイルを送り 確認していただこうと思い
再度、バックテストしてみました。
BUYも 一つも反応(エントリ)しませんでした。
”キツネにつままれた”という思いです。
EA作成履歴をすべてみましたが全部、(1本前)であり (0本前)はありませんでした。
許容幅(補正値)は使用しておりません。
平均足(1本前)始値<平均足(1本前)終値
平均足(1本前)始値=平均足(1本前)安値
平均足(2本前)始値<平均足(2本前)終値
平均足(3本前)始値=>平均足(3本前)終値
で検証をしておりました。
そもそも Buyを複製して 不等号のみ逆にしてSELLを作成
バックテストでBUYはエントリできるのになぜ、SELLはしないのだ?
との疑問を解決すべく エディタでMQLを確認させていただいたのが今回の質問の発端だったんです。
そんはなずない・・・と思いつつも結果がこの様であり(※ある意味では 安心 納得できました)
余計にお騒がせすることとなり、誠に申し訳ございせんでした。
この度は丁寧なご検証と詳細なご報告をいただき、誠にありがとうございました。
ご提案いただきました、
「平均足構成(ヒゲ)をローソク足構成同様に利用できるようにする」
といった機能拡張につきましては、今後の開発検討項目として社内で共有させていただきます。
今後ともEAつくーるをどうぞよろしくお願いいたします。