見出し画像

GOLD EAを作る(2023/12/08)

はじめに

現在開発している EA は XM で動作させることを想定して開発しています。現在デモ口座で動作確認を行いながらブラッシュアップしてます。

開発/運用日記

今日の予定

2023/12/08は雇用統計があります。午後にはポジションを持たなくなる設定にしていますが、この機能が動作しているか確認するには最高のタイミングです。

機能追加

ビジュアルモードでのバックテストだったり、稼働中のEAの変数の値がみたい時ってありますよね。ブレイクポイントで止めながら開発できるIDEとかありますが、私は以下のようにしています。

//+------------------------------------------------------------------+
// ラベル表示関数
// @param name オブジェクト名
// @param text 表示文字列
// @param x X座標
// @param y Y座標
// @param width 幅
// @param height 高さ
// @param back_color 背景色
// @param text_color 文字色
// @param angle 角度
//+------------------------------------------------------------------+
void DrawText(string name, string text, int x, int y, int width, int height, color back_color, color text_color, int angle)
{
	int padding = 3;
	string bgname = name + "_bg";
	ObjectCreate(bgname, OBJ_RECTANGLE_LABEL, 0, 0, 0);
	ObjectSet(bgname, OBJPROP_CORNER, 0);
	ObjectSet(bgname, OBJPROP_XDISTANCE, x);
	ObjectSet(bgname, OBJPROP_YDISTANCE, y);
	ObjectSet(bgname, OBJPROP_XSIZE, width);
	ObjectSet(bgname, OBJPROP_YSIZE, height);
	ObjectSet(bgname, OBJPROP_BGCOLOR, back_color);
	ObjectSet(bgname, OBJPROP_BORDER_TYPE, BORDER_FLAT);
	ObjectSet(bgname, OBJPROP_COLOR, back_color);
	ObjectSet(bgname, OBJPROP_ANGLE, angle);
	
	ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
	ObjectSetText(name, text, 12, "Meiryo UI", text_color);
	ObjectSet(name, OBJPROP_CORNER, 0);
	ObjectSet(name, OBJPROP_XDISTANCE, x + padding);
	ObjectSet(name, OBJPROP_YDISTANCE, y + padding);
	ObjectSet(name, OBJPROP_ANGLE, angle);
	ObjectSet(name, OBJPROP_BACK, false);
}

こんな関数を書いておけば、チャート上にラベルを表示してくれるので、変数の値を表示するようにしておけば、EAの中の状態が可視化でます。

この機能を使って、自分で作ったピップ値を計算する機能が正しいか検証したりします。

運用成績

昨日(2023/12/07)はノーポジションで終了。設定時間外で新規ポジションを取らないところまで確認。昨日設定値を間違えた朝の時間も、もちろんポジションを持ってない。

おわりに

便利な関数とか、作って公開していこうと思ってます。半分くらいはChatGPTに書いてもらっているんですが…。Plusにアップグレードしようとしたら、ウェイトリスト入り…。のんびり行きましょう。。。

この記事が気に入ったらサポートをしてみませんか?