int start(){ Comment(symbolsArray[0]+"|"+symbolsArray[1]+"|"+symbolsArray[2]+"|"+symbolsArray[3]+"|"+symbolsArray[4]); //при запуске советника комментарий выводит правильную информацию, но через время один из элементов массива становится равным совсем другому значению ... return(0); }
void StringToArray (string stringOfSymbols, string &arrayOfSymbols[]){ ...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено) }
int start(){ Comment(symbolsArray[0]+"|"+symbolsArray[1]+"|"+symbolsArray[2]+"|"+symbolsArray[3]+"|"+symbolsArray[4]); //при запуске советника комментарий выводит правильную информацию, но через время один из элементов массива становится равным совсем другому значению ... return(0); }
void StringToArray (string stringOfSymbols, string &arrayOfSymbols[]){ ...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено) }
//-------------------------------------------------------------------- start() // Специальная функция start() { while(!IsStopped()) // До тех пор, пока пользователь.. { // ..не прекратит исполнение программы RefreshRates(); // Обновление данных //......................Здесь указывается основной код программы Sleep(5); // Небольшая пауза } return; // Управление возвращается терминалу } //--------------------------------------------------------------------
//-------------------------------------------------------------------- start() // Специальная функция start() { while(!IsStopped()) // До тех пор, пока пользователь.. { // ..не прекратит исполнение программы RefreshRates(); // Обновление данных //......................Здесь указывается основной код программы Sleep(5); // Небольшая пауза } return; // Управление возвращается терминалу } //--------------------------------------------------------------------
我可以看看代码吗?
extern string SYMBOLS ="EURUSD,GBPUSD,EURGBP,EURJPY,USDJPY";
string symbolsArray[1];
...
void init(){
StringToArray(SYMBOLS, symbolsArray);
...
}
int start(){
Comment(symbolsArray[0]+"|"+symbolsArray[1]+"|"+symbolsArray[2]+"|"+symbolsArray[3]+"|"+symbolsArray[4]);
//при запуске советника комментарий выводит правильную информацию, но через время один из элементов массива становится равным совсем другому значению
...
return(0);
}
void StringToArray (string stringOfSymbols, string &arrayOfSymbols[]){
...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено)
}
extern string SYMBOLS ="EURUSD,GBPUSD,EURGBP,EURJPY,USDJPY";
string symbolsArray[1];
...
void init(){
StringToArray(SYMBOLS, symbolsArray);
...
}
int start(){
Comment(symbolsArray[0]+"|"+symbolsArray[1]+"|"+symbolsArray[2]+"|"+symbolsArray[3]+"|"+symbolsArray[4]);
//при запуске советника комментарий выводит правильную информацию, но через время один из элементов массива становится равным совсем другому значению
...
return(0);
}
void StringToArray (string stringOfSymbols, string &arrayOfSymbols[]){
...//функция заносит в массив названия торговых инструментов, здесь ошибок нету (проверено)
}
我首先要做的是添加#property strict,纠正任何错误/警告(如果有的话),并用OnInit()和OnTick()替换init()和start()。
得到了5个错误和83个警告 ))))
谢谢你!
5个错误和83个警告出来了 ))))
试着用一种 "新 "的语言来写作,就会减少难以发现的错误。
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
我在MQL4教程中遇到了这样一个结构。
start() // Специальная функция start()
{
while(!IsStopped()) // До тех пор, пока пользователь..
{ // ..не прекратит исполнение программы
RefreshRates(); // Обновление данных
//......................Здесь указывается основной код программы
Sleep(5); // Небольшая пауза
}
return; // Управление возвращается терминалу
}
//--------------------------------------------------------------------
是在剧本中还是在专家中?
在审查员。
嗯...那么这就取决于主代码中的情况了。如果发送一个订单是坏的!
是的,订单正在发送中。我不清楚,如果EA在一个符号的窗口中启动,但为另一个符号发送订单,是否应该强制更新报价。例如,如果欧元兑美元的报价没有更新,而同时又收到了英镑兑美元的新报价。如果我的专家顾问在欧元兑美元上运行,而我没有执行RefreshRates(),那么专家顾问将不会在英镑兑美元上发送订单,直到欧元兑美元的报价被更新?
有几种方法可以获得当前的价格。
1.对于任何符号:如果你想获得有保证的当前价格,在使用前用正确的标识符调用SymbolInfoDouble()。
2.对于当前的符号,你也可以通过预定义的变量Bid和Ask获得当前价格。这些可能会过时,所以如果OnTick()函数运行了很久,你应该用RefreshRates()来刷新它们。