お世話になっております。たくさんの有用なインジケータを配布してくださりありがとうございます。
MT4標準搭載のCCIに 一番虫眼鏡で拡大した状態で
0.00を60°以上の角度で突き抜けたとき矢印1(普通の矢印など)、
80°以上の角度で突き抜けたとき矢印2(枠矢印など)を
にサブウィンドウにサインを出すインジケーターが欲しいです。
よろしければご検討よろしくお願いします。
アンケートに回答してくださりまして、誠にありがとうございます。
CCIのサブウィンドウの縦軸の大きさを変更させると角度が変わってきます。角度をどのようにルール化するのかを決めていただけますと論理的にコードに落とし込めますので、具体的に教えていただけますと作れるかもしれません。
これからもよろしくお願いいたします。
コメント
atan2()関数を使用する
atan2()関数は、2つのベクトルの内積と外積から角度を計算する関数です。この関数は、サブウィンドウの縦軸の大きさを自動的に考慮して、角度を計算します。
自身で角度を計算する
自身で角度を計算する場合は、サブウィンドウの縦軸の大きさを考慮して、x成分とy成分を計算する必要があります。
以下に、サブウィンドウの縦軸の大きさを考慮して角度を計算するサンプルコードを示します。
// サブウィンドウの縦軸の大きさを取得する
int vertical_size = chart_window_get_height(handle);
// 角度を計算する
double angle = atan2(end_y – start_y, vertical_size);
このコードでは、atan2()関数を使用して、angle角度を計算しています。angle角度は、サブウィンドウの縦軸の大きさを考慮して計算されます。
また、ラインの角度を計算するときに、ラインの起点と終点のy座標の差を固定することもできます。そのためには、次のコードを使用します。
// ラインの起点と終点のy座標の差を固定する
double fixed_y_diff = 100;
// 角度を計算する
double angle = atan2(fixed_y_diff, vertical_size);
このコードでは、fixed_y_diffはラインの起点と終点のy座標の差を表します。fixed_y_diffを固定することで、ラインの角度は縦軸の大きさに関係なく、常に同じ値になります。
これに実際のMT4での生きている写真を添付するのはどうでしょうか?
私は全くプログラムの知識がないく正解がわからないので情報収集をした結果を示すことしかできず申し訳ありません。
Toteya7D_bibary_MT4-1m・5m様
atan2()関数についての情報ありがとうございます。
角度というものが一般的で分かりやすいとは思いますが、座標による傾きを求めればいいわけで、しかしその傾きから角度を求めればいいかと思いました。
非常に参考になりました。ありがとうございます。いろいろなインジのコードに試してみようと思います。
これからもよろしくお願いいたします。
cci-angleは開発できそうでしょうか?
Toteya7D_bibary_MT4-1m・5m様
角度について、お約束はできませんができるだけ対応したいと思います。
お忙しい中有り難う御座います。
自分が表示しているMT4のCCIのピクセルを図ったところ0.00から上が42ピクセル0.00から下が40ピクセルでした。
この情報は問題解決の糸口となりますでしょうか?
60°ではありませんでした。
矢印1 上昇時は120°下降時は240°
矢印2 上昇時は100°下降時は260°
でした。申し訳ありません。
自分にとって角度を文字起こしするの難しいと感じました。今のところ思いつかないです。頼んでおいて申し訳ないです。
MT4には角度によるトレンドラインが標準搭載されています。あれは何かヒントにならないのでしょうか?