так вам нужно определять выходной или запрет торговли? торговля-то была разрешена 27-го
если выходной, тогда вам нужен парсер новостей - чтобы определять праздники/выходные.
Не важно, по какой причине на конкретном символе не ведется торговля, просто нужно увидеть, что она не ведется. И простите, я еще не дорос до понимания парсера. Что это, и как прописывается в коде?
Еще раз спасибо Alexey Viktorov за подсказку по кавычкам - все работает. НО: в этот понедельник возникла ситуация - немцы торговали, а у англичан выходной. И получилось, что в условии для открытия позиции по евро использовались старые значения фунта. Отсюда просьба: подскажите, как задать в коде проверку, что по обоим символам в этот день ведется торговля?
Спасибо.
#include <Trade\AccountInfo.mqh>
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- объект для работы со счетом
CAccountInfo account;
//--- получим номер счета, на котором запущен советникlong login=account.Login();
Print("Login=",login);
//--- выясним тип счетаENUM_ACCOUNT_TRADE_MODE account_type=account.TradeMode();
//--- если счет оказался реальным, прекращаем работу эксперта немедленно!if(account_type==ACCOUNT_TRADE_MODE_REAL)
{
MessageBox("Работа на реальном счете запрещена, выходим","Эксперт запущен на реальном счете!");
return(-1);
}
//--- выведем тип счета Print("Тип счета: ",EnumToString(account_type));
//--- выясним, можно ли вообще торговать на данном счетеif(account.TradeAllowed())
Print("Торговля на данном счете разрешена");
elsePrint("Торговля на счете запрещена: возможно, вход был совершен по инвест-паролю");
//--- выясним, разрешено ли торговать на счете с помощью экспертаif(account.TradeExpert())
Print("Автоматическая торговля на счете разрешена");
elsePrint("Запрещена автоматическая торговля с помощью экспертов и скриптов");
//--- допустимое количество ордеров задано или нетint orders_limit=account.LimitOrders();
if(orders_limit!=0)Print("Максимально допустимое количество действующих отложенных ордеров: ",orders_limit);
//--- выведем имя компании и сервераPrint(account.Company(),": server ",account.Server());
//--- напоследок выведем баланс и текущую прибыль на счетеPrint("Balance=",account.Balance()," Profit=",account.Profit()," Equity=",account.Equity());
Print(__FUNCTION__," completed"); //---return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---
}
Почти все трейдеры приходят на рынок для того, чтобы заработать денег, хотя есть и доля тех, кому важен не сам торговый результат, а участие в процессе, драйв. Впрочем, получить удовольствие от процесса можно не только торгуя вручную, но и занимаясь разработкой автоматических торговых систем. Ведь создание торгового робота может быть таким же...
Тут не знаю, что и сказать. Спасибо конечно, но по-моему абсолютно не в тему вопроса. И почему "если счет оказался реальным, прекращаем работу эксперта немедленно!"? Допускаю, что я что-то не понимаю.
Тут не знаю, что и сказать. Спасибо конечно, но по-моему абсолютно не в тему вопроса. И почему "если счет оказался реальным, прекращаем работу эксперта немедленно!"?
Это пример кода из статьи, в статье рассматривается экспериментальный код, не для торговли, но функции то теже. Статья старая, но для начинающих само то.
А такие выходные, как те, о которых Вы ищете, кодом Вы не вычислите. Торговля то была открыта, просто англичане не торговоли, небыло нормальных котировок. Попробуйте задать признаки "нормальности" для котировок и проверяйте их наличие. Спред например, тиковая волатильность, периодичность обновления цен, ну или что там вас не устраивало. Полет для фантазии.
Тут не знаю, что и сказать. Спасибо конечно, но по-моему абсолютно не в тему вопроса.
За выходной вообще проще всего узнавать из свойств счёта, будут ограничения по счету, ИМХО конечно. Потому я и привел в пример блок кода, что выше
//--- выясним, можно ли вообще торговать на данном счетеif(account.TradeAllowed())
Print("Торговля на данном счете разрешена");
А в национальные выходные возможны ограничения по символу. Собственно Вы просмотрите статью, там и такое есть:
#include<Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- объект для получения свойств символа
CSymbolInfo symbol_info;
//--- зададим имя символа, для которого будем получать информацию
symbol_info.Name(_Symbol);
//--- получим текущие котировки и выведем
symbol_info.RefreshRates();
Print(symbol_info.Name()," (",symbol_info.Description(),")",
" Bid=",symbol_info.Bid()," Ask=",symbol_info.Ask());
//--- получим значения минимальных отступов для торговых операцийPrint("StopsLevel=",symbol_info.StopsLevel()," pips, FreezeLevel=",
symbol_info.FreezeLevel()," pips");
//--- получим количество знаков после запятой и размер пунктаPrint("Digits=",symbol_info.Digits(),
", Point=",DoubleToString(symbol_info.Point(),symbol_info.Digits()));
//--- информация о спредеPrint("SpreadFloat=",symbol_info.SpreadFloat(),", Spread(текущий)=",
symbol_info.Spread()," pips");
//--- запросим тип исполнения ордеров, нет ли ограниченийPrint("Ограничения на торговые операции: ",EnumToString(symbol_info.TradeMode()),
" (",symbol_info.TradeModeDescription(),")");
//--- выясним режим заключения сделокPrint("Режим исполнения сделок: ",EnumToString(symbol_info.TradeExecution()),
" (",symbol_info.TradeExecutionDescription(),")");
//--- выясним способ вычисления стоимости контрактовPrint("Вычисление стоимости контракта: ",EnumToString(symbol_info.TradeCalcMode()),
" (",symbol_info.TradeCalcModeDescription(),")");
//--- размер контрактовPrint("Размер стандартного контракта: ",symbol_info.ContractSize(),
" (",symbol_info.CurrencyBase(),")");
//--- минимальный, максимальный размеры объема в торговых операцияхPrint("Volume info: LotsMin=",symbol_info.LotsMin()," LotsMax=",symbol_info.LotsMax(),
" LotsStep=",symbol_info.LotsStep());
//--- Print(__FUNCTION__," completed");
//---return(0);
}
Не важно, по какой причине на конкретном символе не ведется торговля, просто нужно увидеть, что она не ведется. И простите, я еще не дорос до понимания парсера. Что это, и как прописывается в коде?
что значит "не ведется торговля" ? торговля разрешена - торгуй сколько влезет)
Парсер - это значит что нужно скачивать файл с новостями, потом его разбирать (парсить) — и определять праздник-выходной.
Запутался. Как получить реальный профит (убыток) по открытому ордеру (не отложке) на MT4 с учетом всех комиссий, свопов и т.п. (т.е. то что получим после закрытия позиции) ? OrderProfit() + OrderSwap() + OrderCommission() или просто OrderProfit() или что-то другое ? Хотелось бы хоть что-то заработать после закрытия ордера.
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
так вам нужно определять выходной или запрет торговли?
торговля-то была разрешена 27-го
если выходной, тогда вам нужен парсер новостей - чтобы определять праздники/выходные.
Не важно, по какой причине на конкретном символе не ведется торговля, просто нужно увидеть, что она не ведется. И простите, я еще не дорос до понимания парсера. Что это, и как прописывается в коде?
Здравствуйте!
Еще раз спасибо Alexey Viktorov за подсказку по кавычкам - все работает. НО: в этот понедельник возникла ситуация - немцы торговали, а у англичан выходной. И получилось, что в условии для открытия позиции по евро использовались старые значения фунта. Отсюда просьба: подскажите, как задать в коде проверку, что по обоим символам в этот день ведется торговля?
Спасибо.
Источник https://www.mql5.com/ru/articles/481
Источник https://www.mql5.com/ru/articles/481
Тут не знаю, что и сказать. Спасибо конечно, но по-моему абсолютно не в тему вопроса. И почему "если счет оказался реальным, прекращаем работу эксперта немедленно!"? Допускаю, что я что-то не понимаю.
Тут не знаю, что и сказать. Спасибо конечно, но по-моему абсолютно не в тему вопроса. И почему "если счет оказался реальным, прекращаем работу эксперта немедленно!"?
Это пример кода из статьи, в статье рассматривается экспериментальный код, не для торговли, но функции то теже. Статья старая, но для начинающих само то.
А такие выходные, как те, о которых Вы ищете, кодом Вы не вычислите. Торговля то была открыта, просто англичане не торговоли, небыло нормальных котировок. Попробуйте задать признаки "нормальности" для котировок и проверяйте их наличие. Спред например, тиковая волатильность, периодичность обновления цен, ну или что там вас не устраивало. Полет для фантазии.
Тут не знаю, что и сказать. Спасибо конечно, но по-моему абсолютно не в тему вопроса.
За выходной вообще проще всего узнавать из свойств счёта, будут ограничения по счету, ИМХО конечно. Потому я и привел в пример блок кода, что выше
А в национальные выходные возможны ограничения по символу. Собственно Вы просмотрите статью, там и такое есть:
Не важно, по какой причине на конкретном символе не ведется торговля, просто нужно увидеть, что она не ведется. И простите, я еще не дорос до понимания парсера. Что это, и как прописывается в коде?
что значит "не ведется торговля" ?
торговля разрешена - торгуй сколько влезет)
Парсер - это значит что нужно скачивать файл с новостями, потом его разбирать (парсить) — и определять праздник-выходной.
торговля разрешена - торгуй сколько влезет)
Торговля-то разрешена, только торги не проводятся - праздник у них.
Но я кажется нашел решение:
и тогда 27-го позиция не открылась.
По-моему, нормальное решение. Если кто-то видит подводные камни, буду благодарен узнать. Спасибо всем.
Торговля-то разрешена, только торги не проводятся - праздник у них.
не представляю как это, если торговля разрешена то и торги проводятся
(даже в праздник и в выходной)
посмотрел новости у брокеров — не увидел чтобы кто-то ограничивал фунт 27-го
не представляю как это, если торговля разрешена то и торги проводятся
(даже в праздник и в выходной)
посмотрел новости у брокеров — не увидел чтобы кто-то ограничивал фунт 27-го
В действительности меня интересовал не фунт, а индекс FTSE100. Это я упростил так: раз уж евро, то пусть фунт))). Так вот 27-го данных по индексу нет.