//+------------------------------------------------------------------+//| Подсчет открытых ордеров |//+------------------------------------------------------------------+int CountOrders()
{
int cnt=0;
int i=OrdersTotal()-1;
for(int pos=i;pos>=0;pos--)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol()==_Symbol)
{
if(OrderMagicNumber()==Magic) cnt++;
}
}
}
return(cnt);
}
在OnTick()中,不写bCheckOrders(),而写这个
//+------------------------------------------------------------------+voidOnTick()
{
// Получим значение индикатора
dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif(CountOrders()==0)
{
// Если появился сигнал на покупку, то откроем ордер на покупкуif(bSignalBuy() == true)
vOrderOpenBuy();
// Если появился сигнал на продажу, то откроем ордер на продажуif(bSignalSell() == true)
vOrderOpenSell();
}
// Проверяем, вышел ли текущий баланс по открытому ордеру за вилку из внешних переменных CountLoss и CountProfitif(GetProfitFromStart()>CountProfit || GetProfitFromStart()<CountLoss*-1)
{
// Если да, то закроем ордер по текущей цене, не дожидаясь стопа или тейка
CloseOrder();
}
DrawLABEL("lab_Take",1,5,0,Color(GetProfitFromStart()>0,Lime,Red),StringConcatenate("Profit: ",DoubleToStr(GetProfitFromStart(),2),AC));
}
制作。与以前的杂志绝对没有区别。
没有错误,或其他任何东西。
你不需要为环形结构设置支架吗?似乎只有在不超过一行的情况下,你才不需要它们。
UPD:
啊,知道了,有一条线。
应该没有任何错误,显示日志
这里是MT4日志的最后几页。
是否需要这个日志?
这里是MT4日志的最后几页。
是否需要这个日志?
这里是你日志中的答案)
开单后的函数bCheckOrders()给出了没有订单的结论,所以他们继续开单
而且我的脑袋根本不听使唤,尽管我知道,当然了。
你的说法很有趣)))。
你的说法很有趣)))。
我的意思是,知道如何写作业和比较,但仍然感到困惑。搞砸了。
这不是我的意思...
pribludilsa #:
,我的脑袋 完全不听使唤,虽然我当然知道。
这里是你日志中的答案)
bCheckOrders()函数在打开一个订单后给出了没有订单的结论,所以它一直在打开
哦,我的天哪,哪有这么说的?
也许我没有正确阅读日志?
开单后 的函数bCheckOrders() 打印出没有订单,因此继续开单--通过void OnTick()--我明白这不是真的。
直到订单被关闭bCheckOrders() - 不能发出没有订单的声音。
哦,该死,哪里说的?
也许我没有正确阅读日志?
开单后 的函数bCheckOrders() 给出了没有订单的结论,因此继续开单--通过void OnTick()--我明白这不是真的。
直到订单关闭bCheckOrders()不应该显示没有订单。
bCheckOrders( )不能正确工作!
我已经给你写了一个计算订单的函数。
只要像这样做,应该就可以了。
取代bCheckOrders(),把这个函数
在OnTick()中,不写bCheckOrders(),而写这个