В тестере стратегий команда MarketInfo(Symbol(),MODE_TICKVALUE) = 0 (!) Это происходит в ситуациях, когда, например, инструмент EURUSD а валюта баланса RUR .... и в других сочетаниях. Я понял так, что валюта баланса должна совпадать с именем второй валюты в валютной паре. Иначе коменда дает значение НОЛЬ (в тестере стратегий) В результате невозможно проводить тестирование в желаемых сочетаниях. Как решить эту проблему?
В тестере стратегий команда MarketInfo(Symbol(),MODE_TICKVALUE) = 0 (!) Это происходит в ситуациях, когда, например, инструмент EURUSD а валюта баланса RUR .... и в других сочетаниях. Я понял так, что валюта баланса должна совпадать с именем второй валюты в валютной паре. Иначе коменда дает значение НОЛЬ (в тестере стратегий) В результате невозможно проводить тестирование в желаемых сочетаниях. Как решить эту проблему?
Выделенное неверно! У меня расчёт производится в евро с EURUSD, GBPUSD и др. Только при включении может дать 0, пока не поступили первые данные, поэтому перед вычислениями с TICKVALUE ставлю условие, что если != 0;
А в тестере MarketInfo() может не работать, поэтому зная примерную цену тика проставляю её с условием IsTesting() || IsOptimization() || IsVisualMode().
NULL или Symbol() значат пару графика. Для различения можно употребить string mySymbol = Symbol() и вешайте 2 копии советника на соответственные графики и присвойте различные магики для верности! Удачи!
// в OnTick()double open_nzdusd_CUR=GetNormalizeOpenPriceBySymbol("NZDUSD",Period(),0); // цена открытия текущей свечи NZDUSDdouble open_audusd_M15=GetNormalizeOpenPriceBySymbol("AUDUSD",PERIOD_M15,1); // цена открытия прошлой свечи AUDUSD на M15//+------------------------------------------------------------------+// функция вне тела OnTick()//+------------------------------------------------------------------+double GetNormalizeOpenPriceBySymbol(string sy, int timeframe, int shift) {
int digits=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS);
return(NormalizeDouble(iOpen(sy,timeframe,shift),digits));
}
//+------------------------------------------------------------------+
С открытием вот лишь сама концепция:
string symbol="AUDUSD";
double ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
double bid=SymbolInfoDouble(symbol,SYMBOL_BID);
double pt=SymbolInfoDouble(symbol,SYMBOL_POINT);
int spread=(int)SymbolInfoInteger(symbol,SYMBOL_SPREAD);
int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
int value=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL);
int level=(value==0)?spread*2:value;
//---double sl_b=(StopLoss==0)?0:NormalizeDouble(fmin(ask-StopLoss*pt,ask-(level+1)*pt),digits);
double tp_b=(TakeProfit==0)?0:NormalizeDouble(fmax(ask+TakeProfit*pt,ask+(level+1)*pt),digits);
ticket_b=OrderSend(symbol,OP_BUY,Lots,ask,3,sl_b,tp_b,"",0,0,clrGreen);
//---double sl_s=(StopLoss==0)?0:NormalizeDouble(fmax(bid+StopLoss*pt,bid+(level+1)*pt),digits);
double tp_s=(TakeProfit==0)?0:NormalizeDouble(fmin(bid-TakeProfit*pt,bid-(level+1)*pt),digits);
ticket_s=OrderSend(symbol,OP_SELL,Lots,bid,3,sl_s,tp_s,"",0,0,clrRed);
Сегодня Навигатор в терминале вдруг развернулся во всю ширину экрана, заслонив графики! Всегда был одинаковой шириной с Обзором рынка! Ищу и не нахожу, как его вернуть в прежние размеры! Помогите кто знает как справиться с новой напастью! Спасибо!
borilunad: Сегодня Навигатор в терминале вдруг развернулся во всю ширину экрана, заслонив графики! Всегда был одинаковой шириной с Обзором рынка! Ищу и не нахожу, как его вернуть в прежние размеры! Помогите кто знает стравиться с новой напастью! Спасибо!
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Подскажите, каким образом из МТ узнать текущий ip адрес компьютера?
В тестере стратегий команда MarketInfo(Symbol(),MODE_TICKVALUE) = 0 (!) Это происходит в ситуациях, когда, например, инструмент EURUSD а валюта баланса RUR .... и в других сочетаниях. Я понял так, что валюта баланса должна совпадать с именем второй валюты в валютной паре. Иначе коменда дает значение НОЛЬ (в тестере стратегий) В результате невозможно проводить тестирование в желаемых сочетаниях. Как решить эту проблему?
В тестере стратегий команда MarketInfo(Symbol(),MODE_TICKVALUE) = 0 (!) Это происходит в ситуациях, когда, например, инструмент EURUSD а валюта баланса RUR .... и в других сочетаниях. Я понял так, что валюта баланса должна совпадать с именем второй валюты в валютной паре. Иначе коменда дает значение НОЛЬ (в тестере стратегий) В результате невозможно проводить тестирование в желаемых сочетаниях. Как решить эту проблему?
Выделенное неверно! У меня расчёт производится в евро с EURUSD, GBPUSD и др. Только при включении может дать 0, пока не поступили первые данные, поэтому перед вычислениями с TICKVALUE ставлю условие, что если != 0;
А в тестере MarketInfo() может не работать, поэтому зная примерную цену тика проставляю её с условием IsTesting() || IsOptimization() || IsVisualMode().
Помогите пожалуйста пытаюсь создать сов торгуюший на двух парах одновременно.
если по первой паре переменная будет так
double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);
то как будет по второй?
или код открытия сделок по первому символу так
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Green);
как будет выглядеть код второго символа
Помогите пожалуйста пытаюсь создать сов торгуюший на двух парах одновременно.
если по первой паре переменная будет так
double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);
то как будет по второй?
или код открытия сделок по первому символу так
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Green);
как будет выглядеть код второго символа
Помогите пожалуйста пытаюсь создать сов торгуюший на двух парах одновременно.
если по первой паре переменная будет так
double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);
то как будет по второй?
или код открытия сделок по первому символу так
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Green);
как будет выглядеть код второго символа
С открытием вот лишь сама концепция:
без проверок кодов возврата торгового сервера.
Сегодня Навигатор в терминале вдруг развернулся во всю ширину экрана, заслонив графики! Всегда был одинаковой шириной с Обзором рынка! Ищу и не нахожу, как его вернуть в прежние размеры! Помогите кто знает стравиться с новой напастью! Спасибо!
просто за краешек ухвати и уменьшай сколько надо
Я уж ухватываю по-разному, и никак! Если можно, за какой, именно, "краешек"?!
Уменьшается только по высоте, а по ширине никак! Вдруг развернулся во всю ширину Терминала!