#property indicator_chart_windowbool First = true;
int start(){
if(First){
int indexFirstLeftOnChart = WindowFirstVisibleBar();//иницилизируем под флагом, потому что в init() могут быть артефактыAlert("indexFirstLeftOnChart ", indexFirstLeftOnChart);
First = false;
}
if(WindowFirstVisibleBar() != indexFirstLeftOnChart){//проверяем на каждом тике, изменилось ли значениеAlert("first indexFirstLeftOnChart ", indexFirstLeftOnChart);
indexFirstLeftOnChart = WindowFirstVisibleBar();//если изменилось, записываем егоAlert("second indexFirstLeftOnChart ", indexFirstLeftOnChart);
}
return(0);
}
//+-------------------------------------------------------------------------------------+//| Поиск своих ордеров |//+-------------------------------------------------------------------------------------+void FindOrders(int& t, int& p)
{
int total = OrdersTotal() - 1;
t = 0;
p = 0;
for (int i=total; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != i_magic) continue;
if (OrderType() > 1)
{
p++;
}
t++;
pr ("FindOrders(): " + "t = " + t + " " + TimeToStr(TimeCurrent()));
pr ("FindOrders(): " + "p = " + p + " " + TimeToStr(TimeCurrent()));
}
}
我从一开始就叫它。
int start()
{
if (g_lastBarTime == Time[0]) // На текущем баре все необходимые действия..return (0); // ..уже были выполненыint oTotal = 0, oPending = 0;
FindOrders(oTotal, oPending);
int signal = GetGeneralSignal(oTotal);
if (signal != SIGNAL_NO)
{
if (!Trade(signal))
return(0);
}
else
intstart()// Спец. функция start(){// Открытие BUYOrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert(GetLastError());
return; // Выход из start()}
Кто может объяснить в чем проблема, буду очень признателен. Заранее спасибо.
告诉我如何对待元引号引文中的这种栅栏)?
我们需要拦截信息。
如果消息已经被执行,那么它已经被从队列中删除。
好的,我有以下问题。
- 它在每一个刻度 上发出哔哔声,因为事实证明,第一个indexFirstLeftOnChart是零。我如何与之斗争?509号建筑。
如果一条消息已经被执行,它就已经从队列中被删除。
通常情况下,他们会在执行前拦截它。否则我不明白你需要拦截什么?
在执行之前没有任何问题。所以把AccountNumber()的有效性检查移到dll是没有意义的。这意味着账户号码已经存储在dll中。
我有东西在一个简单的点上,一个头痛的问题。有一个搜索订单的功能。
t - 所有订单的计数器。
p - 待处理订单的计数器。
我从一开始就叫它。
事实上,当我们打开它时,即使没有订单,我们也会看到这样的情况(即使没有订单,也会打印成有订单的样子...)。
这怎么可能呢?
int start()
{
OrderSend("EURUSD",OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert(GetLastError()) ;
返回。
}
脚本没有工作,显示错误4109(不允许交易)。当试图改变这种情况时,也出现了错误4016(未初始化的阵列)。我想知道是什么原因导致这些错误,以及如何创建一个简单的交易开仓脚本,毕竟。我只是复制了教程中的例子https://book.mql4.com/ru/trading/ordersend(我只是把函数GetLastError加入其中),结果还是出现了错误4109。