Акция — это ценная бумага, которая выпускается каким-либо предприятием (акционерным обществом) и дает ее владельцу права на получение части прибыли от этого предприятия в виде дивидендов. Также
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
//+------------------------------------------------------------------+//| TradeTransaction function |//+------------------------------------------------------------------+voidOnTradeTransaction(constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result)
{
//--- get transaction type as enumeration valueENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif(type==TRADE_TRANSACTION_DEAL_ADD)
{
if(HistoryDealSelect(trans.deal))
m_deal.Ticket(trans.deal);
elsereturn;
if(m_deal.Symbol()==m_symbol.Name() && m_deal.Magic()==InpMagic)
{
if(m_deal.DealType()==DEAL_TYPE_BUY || m_deal.DealType()==DEAL_TYPE_SELL)
{
if(m_deal.Entry()==DEAL_ENTRY_IN || m_deal.Entry()==DEAL_ENTRY_INOUT)
m_last_deal_in=iTime(m_symbol.Name(),InpTimeFrame,0);int size_need_position=ArraySize(SPosition);
if(size_need_position>0)
{
for(int i=0; i<size_need_position; i++)
{
if(SPosition[i].waiting_transaction)
if(SPosition[i].waiting_order_ticket==m_deal.Order())
{
Print(__FUNCTION__," Transaction confirmed");
SPosition[i].transaction_confirmed=true;
break;
}
}
}
}
}
}
}
并对信号被触发的时间进行核对。
//+------------------------------------------------------------------+//| Search trading signals |//+------------------------------------------------------------------+bool SearchTradingSignals(void)
{
if(m_prev_bars==m_last_deal_in) // on one bar - only one dealreturn(true);
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит и...
if (PositionsTotal()==1) // Здесь проверяю, что открыта одна позиция
{
datetime Cu=iTime(NULL,_Period,0); // Здесь в переменную - время открытия бара при открытой позиции
但在这里 "你检查保存的时间和当前酒吧的开放时间。"问题。
我也做过差不多的事,看看这个。
if (PositionsTotal()==1) // Здесь проверяю, что открыта одна позиция (или была открыта, неважно, любое торговое действие)
{
datetime Cu=iTime(NULL,_Period,0); // Здесь в переменную - время открытия бара при открытой позицииint hd=+iBarShift(Symbol(),_Period,Cu)+1; // Здесь в переменную - бар на котором произошло открытие позиции if (hd>=1) //Здесь проверяем - если этих баров, больше чем один, то.......
{
return; //....то зацикливанием программу, НО проблема только в return
}
}
Тикет позиции. Уникальное число, которое присваивается каждой вновь открытой позиции. Как правило, соответствует тикету ордера, в результате которого она была открыта, за исключением случаев изменения тикета в результате служебных операций на сервере. Например, начисления свопов переоткрытием позиции. Для нахождения ордера, которым была открыта...
datetime PR=iTime(NULL,_Period,0); // проверяю время открытие бараif (PositionsTotal()==1)
{
datetime TK=iTime(NULL,_Period,0); // время открытия бара при открытой позиции if (PR==TK) // сравниваю
{
return(true); // НЕ катит true - ошибка
}
}
为所有。更确切地说,它在图表窗口中显示的是 设置中指定的条数,而不取决于时间框架。
P.S. 我从来没有改变过这个值,但我刚刚检查了一下,发现它不能被设置为小于1000。所以你需要用iBars()来检查?
下午好。脚本由于某种原因不能工作。
有什么问题呢?
朋友们好!
问题。
1.卖出止损 订单是放在经纪人那边还是放在终端那边?
2.当我关闭程序时,当条件得到满足时,这个订单是否会被触发?
在MICEX股票市场 上交易。提前感谢您!
下午好,亲爱的程序员们。关于MQL5的问题
如何在MetaTrader 5中实现仓位控制?我想在一个柱子上只有一个开仓,也就是说,无论在哪里--在哪个柱子上,这个仓位都应该被关闭,但开仓应该只在一个柱子上。
这段代码被完全忽略了。 什么是错误?
下午好,亲爱的程序员们。关于MQL5的问题
如何在MetaTrader 5中实现仓位控制?这意味着无论在哪里--在哪个柱子上--都会关闭头寸,但开仓应该只在一个柱子上。
最简单的方法是将开仓的时间保存在全局变量中,然后在开新仓时,检查开仓时间,如果该值高于保存值,则开仓。
下午好,亲爱的程序员们。关于MQL5的问题
如何在MetaTrader 5中实现仓位控制?我想在一个柱子上只有一个开仓,也就是说,无论在哪里--在哪个柱子上,这个仓位都应该被关闭,但开仓应该只在一个柱子上。
这段代码被完全忽略了。 什么是错误?
错误:你把苍蝇和肉片搞混了--你把远程命令和位置搞混了。
为避免混淆,请阅读参考资料:《一般原则
上面的简单方法是,当你开仓时,记住当前栏的开仓时间。然后,如果你想建立一个新的头寸,你要检查保存的时间和当前栏的开仓时间。
在OnTradeTransaction 中,存储开仓的时间是很方便的。
并对信号被触发的时间进行核对。
例子取自OHLC检查2 的代码
不知为何,这有点棘手....。第一阶段没有问题,"记住当前酒吧 的 开放时间"
你去吧。
但在这里 "你检查保存的时间和当前酒吧的开放时间。"问题。
我也做过差不多的事,看看这个。
我在这里需要做的是循环 走动,如 "return(-1)",但我不能给return分配一个表达式,因为是空的。 我怎样才能绕过这个问题呢?如何循环但不返回?
这也没有用。
不知为何,这有点棘手....。第一阶段没有问题,"记住当前酒吧 的 开放时间"
你去吧。
但在这里 "你检查保存的时间和当前酒吧的开放时间。"问题。
我也做过差不多的事,看看这个。
我在这里需要做的是循环 走动,如 "return(-1)",但我不能给return分配一个表达式,因为是空的。 我怎样才能绕过这个问题呢?如何循环但不返回?
循环项目的治疗方法是将他们的手臂砍在脖子上。这样你将来就不必再这样做了。
这是你需要的东西--整个程序体,你只需要把信号接收正式化。
变量'm_prev_bars'存储的是当前交易时段的开仓时间,变量'm_last_deal_in'存储的是开仓时的交易时段。
这两个变量在获取信号的区块"SearchTradingSignals"中被比较。