MT4のEAで条件を満たしたらメールと矢印を描画したいのですが、 どのように記述し…

MT4のEAで条件を満たしたらメールと矢印を描画したいのですが、
どのように記述したらよいでしょうか。

現在は条件を満たした時(=シグナル発生時)にメールを送信するだけなのですが、
シグナル発生時の価格の部分に矢印などの図形を描画させたいのですがどのようにしたらよいでしょうか。

現在使用している文は下記のとおりです。

if(
//日足・4時間足の平均足が陽線で、トレードする足の平均足が陰線から陽線に変わったら買い注文
HaDifference2<0 && HaDifference1>0 && Difference_Day>0 && Difference_4H>0

&& LastTime1 !=TimeHour(Time[0])*100+TimeMinute(Time[0])
)
{
LastTime1 = TimeHour(Time[0])*100+TimeMinute(Time[0]);
SendMail( Symbol() + " : "Buy ","v150915");
}
以上、よろしくお願い致します。

回答1

/*

MT4用 矢印オブジェクトを作成するスクリプト例

★の付いた関数をプログラムの適当な場所にコピーして、
■の付いた関数呼び出しをメール送信の後に追加すれば良いと思います。

☆の付いた関数は、生成した矢印オブジェクトを自動で全削除したい場合に利用します。
(自動削除する必要が無い場合はコピーしなくても良いです)

*/

#property copyright "trekfareast"
#property link "http://chiebukuro.yahoo.co.jp/my/trekfareast"
#property description "矢印オブジェクトを作成するスクリプト例"
#property show_inputs
#property strict

input bool IsArrowDelete = false;//true=生成した矢印オブジェクトを全削除する

//矢印オブジェクト名のヘッダ文字列を生成する関数★
string MyArrowObjectNameHeader()
{
return WindowExpertName()+"-ArrowObj";
}

//矢印オブジェクトを作成する関数★
int MyCreateArrowObject(datetime time, double price, color clr, int ArrowCode,string CommentStr)
{
//オブジェクト名を生成する
string ObjName = MyArrowObjectNameHeader()+"-"+IntegerToString(time)+"-"+DoubleToStr(price)+"-"+ColorToString(clr,true)+"-"+IntegerToString(ArrowCode);

//一応同名のオブジェクトを消しておく。
ObjectDelete(ObjName);

if(ObjectCreate(ObjName, OBJ_ARROW, 0/*MainWindow*/, time, price) == false){//矢印オブジェクトを作成
Print("error: can’t create ARROW_object! code #",GetLastError());//作成に失敗した時
}
ObjectSet(ObjName, OBJPROP_COLOR, clr);//矢印の色を設定
ObjectSet(ObjName, OBJPROP_ARROWCODE, ArrowCode);//矢印の種類 鮴瀋
ObjectSetText(ObjName, CommentStr);//矢印のコメントを設定

return(0);
}

//生成した矢印オブジェクトを全て削除する関数☆
void MyArrowDeleteALL()
{
string NameHeader = MyArrowObjectNameHeader();//矢印オブジェクト名のヘッダ文字列
int NameHeaderLen = StringLen(NameHeader);//ヘッダ文字列の長さ

//矢印オブジェクトヘッダ名を持つオブジェクトを全て削除する
for(int i=ObjectsTotal();i>0;i–){
string name = ObjectName(i);
if(StringSubstr(name,0,NameHeaderLen) == NameHeader){
//矢印オブジェクト名と同一のヘッダ名を持つオブジェクトの時
ObjectDelete(name);
}
}
}

int start()
{
MyCreateArrowObject(TimeCurrent(),Ask,Blue,1,"Comment text");//Buy用(青色の⇒)の矢印を作成する例■
MyCreateArrowObject(TimeCurrent(),Bid,Red,1,"Comment text& quot;);//Sell用(赤色の⇒)の矢印を作成する例■

return 0;
}

//プログラム終了時に呼び出される関数
void deinit()
{
if(IsArrowDelete){
//矢印削除オプションがtrueの時
MyArrowDeleteALL();//矢印を全削除する
}
}

//+——————————————————————+

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA