#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);
}
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
那么,你是否需要定义一个假期或禁止交易?
27日允许交易。
如果是周末,那么你需要一个新闻分析器--来识别假期/周末。
某一符号不交易的原因并不重要,你只需要看到它不交易。而且对不起,我还没有成熟到可以理解解析器的程度。它是什么,它在代码中是怎么写的?
你好!
再次感谢Alexey Viktorov 提供的关于报价的提示--一切顺利。本周一我们有一个情况--德国人有交易,而英国人有一天休息。事实证明,在欧元开仓 的条件下,使用了英镑的旧值。因此请求:建议如何在代码中设置检查这两个符号在这一天的交易?
谢谢你。
来源https://www.mql5.com/ru/articles/481
来源https://www.mql5.com/ru/articles/481
我不知道在这里该说些什么。谢谢你,但我认为这完全偏离了主题。以及为什么"如果分数被证明是真实的,立即终止EA!"? 我想我错过了什么。
我不知道在这里该说些什么。当然,谢谢你,但我认为这完全偏离了主题。以及为什么"如果分数被证明是真实的,立即终止EA!"?
这是文章中的一个代码例子。 文章涉及的是一个实验性的代码,不是用于交易的,但功能是一样的。这是一篇旧文章,但对初学者来说是一篇好文章。
你所寻找的输出不能由代码计算出来。交易是开放的,但英国人没有交易,没有正常的报价。尝试为报价设置 "正常",并检查它们是否存在。例如,价差、跳动率、价格更新频率,或任何不适合你的东西。幻想中的飞行。
我不知道在这里该说些什么。当然,谢谢,但我认为这完全是题外话。
最简单的方法是从账户的属性 中找到输出的信息,对账户会有限制,当然是IMHO。这就是为什么我把上面的代码块作为一个例子
而在国家产出中,可能对该符号有限制。事实上,看看这篇文章,那里也有一个。
某一符号不交易的原因并不重要,你只需要看到它不交易。而且很抱歉,我还没有成熟到可以理解解析器的程度。它是什么,它在代码中是如何写的?
什么是 "无交易"??
允许交易 - 随意交易)
解析器是指下载一个包含新闻的文件,然后对其进行解析(parsing)--并确定假日-周末。
允许交易--想怎么交易就怎么交易)
允许贸易,但没有交易--这是一个假期。
但我想我已经找到了一个解决方案。
然后在27日没有开仓。
对我来说,这似乎是一个很好的解决方案。如果有人认为有什么隐患,我很想知道。谢谢大家。
允许交易,但没有交易--他们在度假。
如果允许交易,我不知道是怎么回事
(即使是在节假日和周末)。
看了一下经纪人的新闻--没有看到有人在27日限制英镑。
我不明白,如果允许交易,那么交易是如何发生的
(即使是在假日和周末)
看了一下经纪人的新闻--没有看到有人在27日限制英镑。
事实上,我对英镑不感兴趣,而是对富时100指数感兴趣。我是这样简化的:只要是欧元,就让它成为英镑))。所以27日没有指数数据。