int i, ot = OrdersTotal();
double min = 1000.0;
int min_ticket=0;
for (i=ot - 1; i>= 0; i--)
{
if (!OrderSelect (i, SELECT_BY_POS)) continue;
if (OrderType()!=OP_BUY) if (OrderType()!=OP_SELL) continue;
if (min <= OrderLots()) continue;
min = OrderLots();
min_ticket=OrderTicket();
}
int start()
{
double Price=iOpen (Symbol (),PERIOD_M5,0)+300*Point;
double SL=NormalizeDouble (Price-300*Point, Digits);
double TP=NormalizeDouble (Price+150*Point, Digits);
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке
{
if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний ордер (если он есть)
}
int last_hist_order_bar = 0;
int oht = OrdersHistoryTotal();
if (oht>0) //если есть ордера в рынке
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
}
if (ot==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем бареif (oht==0 || last_hist_order_bar>0) //если закрытых ордеров нет либо последний из закрытых был открыт не на текущем бареif (Bid>=Price) //если текущая цена доползла до цены открытияint Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
}
if (oht>0) //если есть ордера в рынке
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
}
如果你这样做,所有的怪异现象都应该消失。
要删除 "额外 "条件,你可以这样做。
怎么说呢...基于伊戈尔-金所做的东西...只有你的一个特点...其他的都是一样的...
我想,是这样的。
而我们称之为。
来计算当前符号的买入和卖出数量,用Magic
要删除 "额外 "条件,你可以做以下工作
伊戈尔,你是对的。这样更有可读性...。
Artyom,当然,我来自金,删除不必要的检查,添加我需要的任务。不是为了重新发明一辆自行车!谢谢你的纠正,我将更大胆地删除不必要的!而且我不需要检查魔术师和符号,因为有时我 "手动 "干预,而不是之前的多币种对我来说还!"。
你必须检查是否(OrderMagicNumber()==0)...这是一个 "手动 "检查。
如果我们想干扰其他EA对另一个符号的工作,我们可以删除OrderSymbol()的检查。
我留下了最低限度的必要检查,以便在单个字符上工作,有自己的位置/顺序。如果你想同时触及什么 "处理",那么你需要添加一个magic==0的检查。
那么你应该做一个检查,如果(OrderMagicNumber()==0)...是对 "手动 "的检查。
如果我们想干扰其他EA对另一个符号的工作,我们可以删除OrderSymbol()的检查。
我已经留下了在一个符号上工作的最低要求的检查,有自己的位置/顺序。如果你也想 "用手 "摸一下,那么你需要增加一个对Magik==0的检查。
非常感谢您的帮助。一切都很好。但......
1.在某些5分钟内,有超过1个订单打开。
2.有些订单被止损单关闭,其价格与代码中规定的价格不同。
嗯,在已关闭的订单中做同样的检查很容易)而关于收盘价--对不起,它是正确设置的,然后由服务器决定以什么价格关闭。
那么收盘价呢--对不起,它的设置是正确的,然后由服务器决定它到底会以什么价格收盘。
再次感谢您的所有帮助。但.....
在一年的时间里,我只开了一个订单,也就是我遇到的第一个订单。
而在这个时期,还有很多带参数的蜡烛图可以开单。
我将无法关闭它。 谢谢你。
再次感谢您的所有帮助。但.....
在一年的时间里,我只开了一个订单,也就是我看到的第一个订单。
而在这个时期,还有很多带参数的蜡烛图可以开单。
谢谢你。
纠正我的打字错误--第二次
我需要
纠正我的打字错误--第二次
它应该是这样的。