double history(){
int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордераfor(int i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордераif(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной пареif(time<OrderCloseTime()){//(сравниваем его с хранящимся в пероеменной time)
time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
profit=OrderProfit();//и заодно запоминаем прибыль ордера
}
}
}
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.//теперь мы можем выставлять условия в зависимости от результата процедурыif(profit == 0 &&time == 0){//действия если история чистая
}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым
}
if(profit < 0 ){//действия если последний ордер был убыточным
}
return(0);
}
晚上好!
我有一个简单的问题。
出于什么原因,EA在初始化后,不能进入start();?
也许有人遇到过这样的问题?
从init(); 我退出 return(0); .
预先感谢您的回答!
晚上好!
我有一个简单的问题。
出于什么原因,EA在初始化后,不能进入start();?
也许有人遇到过这样的问题?
从init(); 我退出 return(0); .
预先感谢您的回答!
嗨,所有的人和利润!
我有这样一个问题。
在我的家用电脑上,我正在做一个图形布局。如何将其转移到另一台电脑上--哪个文件应该被覆盖?
我不能使用像复制整个MT4文件夹,然后用新的名字复制到另一台电脑的输出,因为它太复杂了。有趣的是,如果我把文件夹留在另一台电脑上,用旧的名字,图表上没有任何新的内容......。
谁知道呢,救命啊!
BBSL ,我习惯于写 "start();"--你是这样写的吗? 那里不需要冒号,也许没有大括号 呢
kiimar, 你关闭了吗? 如果是的话,你需要看一下代码
晚上好!
我有一个简单的问题。
出于什么原因,EA在初始化后,不能进入start();?
也许有人遇到过这样的问题?
从init(); 我退出 return(0); .
预先感谢您的回答!
如何检查订单是否被止盈或止损所触发?谢谢你的答复
出于什么原因,EA在初始化后,不能进入start();?
也许有人遇到过这个问题?
有时在init()中会有复杂的计算或加载历史记录,或者终端有大量的指标和EA使终端暂停或...
但如果在代码初始化过程中,终端机中断了代码,日志中会出现以下错误:"....超时在专家...."
如果日志没有显示错误,说明初始化成功了。 start()函数本身很容易检查--在第一行写 start() :Print("new tick") 。
如何检查订单是否被止盈或止损所触发?谢谢你的答复
检查订单历史,如果收盘价等于SL或TP - 那么...,但我认为检查平仓订单的利润会更容易 - 如果>0,则采取否则...
这里有一段类似的有意义的代码。