//--- 输入参量
input int tiks_before=500; // 订单号数目直到终止
input int pips_to_go=15; // pips 间的距离
input int seconds_st=50; // 给予EA交易的秒数
//--- 全局
datetime launch_time;
int tick_counter=0;
//+------------------------------------------------------------------+
//| 专家无法初始化函数 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
Print(__FUNCTION__," reason code = ",reason);
Comment("");
}
//+------------------------------------------------------------------+
//| 专家订单号函数 |
//+------------------------------------------------------------------+
void OnTick()
{
static double first_bid=0.0;
MqlTick tick;
double distance;
//---
SymbolInfoTick(_Symbol,tick);
tick_counter++;
if(first_bid==0.0)
{
launch_time=tick.time;
first_bid=tick.bid;
Print("first_bid =",first_bid);
return;
}
//--- pips 的价格距离
distance=(tick.bid-first_bid)/_Point;
//--- 通过EA操作显示告示
string comm="From the moment of start:\r\n\x25CF elapsed seconds: "+
IntegerToString(tick.time-launch_time)+" ;"+
"\r\n\x25CF ticks received: "+(string)tick_counter+" ;"+
"\r\n\x25CF price went in points: "+StringFormat("%G",distance);
Comment(comm);
//--- 检测关闭程序端状态的部分
if(tick_counter>=tiks_before)
TerminalClose(0); // 推出订单号计数器
if(distance>pips_to_go)
TerminalClose(1); // 同于pips_to_go增长pips数量
if(distance<-pips_to_go)
TerminalClose(-1); // 同于pips_to_go下降pips的数量
if(tick.time-launch_time>seconds_st)
TerminalClose(100); // 超时终止
//---
}
|