//+----------------------------------------------------------------------------+datetime SecondsAfterCloseLastPos(string sy, int op, int mn)
{
datetime t;
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()!=sy) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()!=mn) continue;
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+
不要问,用测试人员检查...:)
专家画一条线。
如果代码说 "如果没有画线,就画线1;如果没有画线,就画线2" - 它们不可能不被画出来:)
你能告诉我为什么测试报告中的百分比都是0?即相对缩减,最大缩减,等等?
例如,像这样。
像这样打电话。
我希望你能把几分钟变成几小时......。:)我试着按你说的方法写,但还是不行......它还是在前一个仓位 关闭时开仓......()
也许你不明白我的意思,我想让它在前一个仓位关闭后不早于1小时开仓......而在你的情况下,它排除了重新开仓的可能性,但一旦关闭,它立即打开下一个仓位。
伙计们的帮助:我需要一个交易在前一个交易关闭后过了一定的时间才会被打开....help 。
for (int i=0; i<OrdersTotal(); i++){ 如果
(OrderSelect(i, SELECT_BY_POS)==true)。{ TC = TimeCurrent(); OM = OrderMagicNumber(); if (TC-OM>86400 && (OrderType()==OP_SELL)){ CLOSEORDER("Sell"); }如果(TC-OM>86400 && (OrderType()==OP_BUY)){ CLOSEORDER("Buy"); } } }
在OrderMagicNumber()中,当打开一个订单时,它写道:Magic=TimeCurrent()。
for (int i=0; i<OrdersTotal(); i++){ 如果(OrderSelect(i, SELECT_BY_POS)==true)。{ TC = TimeCurrent(); OM = OrderMagicNumber(); if (TC-OM>86400 && (OrderType()==OP_SELL)){ CLOSEORDER("Sell"); }如果(TC-OM>86400 && (OrderType()==OP_BUY)){ CLOSEORDER("Buy"); } } }
在OrderMagicNumber()中,当打开一个订单时,写到:Magic = TimeCurrent()。
我忘了 =)86400 - 这是关闭仓位 的秒数。
你能告诉我为什么测试报告中的百分比都是0?即相对缩减,最大缩减,等等?
都想好了--存款太多)
我试着按你说的方法写,它起作用了......它仍然在前一个仓位的收盘时开仓......(
也许你不明白我的意思,它需要在前一笔交易关闭后不早于1小时开仓......而在你的情况下,它排除了开立重复交易的可能性,但一旦关闭,下一笔交易就会立即开仓。
并考虑到功能代码?找到四个不同点 :) :