Уважаемые специалисты!
Прошу вас подсказать в чём проблема и разгадать загадку.
Элементарный исходный файл SB-experiments.mq4 откомпилирован в разных версиях:
Для компилятора MetaEditor 4.00 Build 509 (файл SB-experiments-OLD.ex4) SB-experiments работает правильно.
Для компилятора MetaEditor 5.00 Build 1351 (файл SB-experiments-NEW.ex4) в SB-experiments не работает подпрограмма "start".
Прошу подсказать причину не работы "start" для нового компилятора.
В виде текста:
#property copyright "Copyright 2016 by ValPra"
#property show_inputs
//#property strict
#include <stdlib.mqh>
#include <stderror.mqh>
extern string OrderCmt = "SB-experiments";
extern int QuantityOfTicks = 30;
string Currpair;
int loopcount=0;
int array_time[30];
double array_ask[30];
double array_bid[30];
void init()
{
ArrayResize(array_ask, QuantityOfTicks);
ArrayResize(array_bid, QuantityOfTicks);
ArrayResize(array_time, QuantityOfTicks);
Currpair = Symbol();
Print ("========== Initialization complete! ===========\n");
return;
}
void start()
{
int sub_loopcount = 0;
if (loopcount < QuantityOfTicks)
{
array_ask[loopcount] = MarketInfo(Currpair, MODE_ASK);
array_bid[loopcount] = MarketInfo(Currpair, MODE_BID);
array_time[loopcount] = TimeCurrent();
Print ("Please wait until enough of ticks data has been gathered! Tick number ",loopcount," ASK=",array_ask[loopcount]," BID=",array_bid[loopcount]," Time=",array_time[loopcount]);
sub_loopcount = loopcount + 1;
if (sub_loopcount == QuantityOfTicks)
Print ("Trade started!");
}
if (loopcount >= QuantityOfTicks)
{
ArrayCopy(array_ask, array_ask, 0, 1, QuantityOfTicks - 1);
ArrayCopy(array_bid, array_bid, 0, 1, QuantityOfTicks - 1);
ArrayCopy(array_time, array_time, 0, 1, QuantityOfTicks - 1);
array_ask[QuantityOfTicks - 1] = MarketInfo(Currpair, MODE_ASK);
array_bid[QuantityOfTicks - 1] = MarketInfo(Currpair, MODE_BID);
array_time[QuantityOfTicks - 1] = TimeCurrent();
}
else
loopcount = loopcount + 1;
return;
}
void deinit()
{
Print (OrderCmt, " has been deinitialized!");
return;
}