Анализ размера свечи и тени свечи. В OnTradeTransaction отлавливаем открытие (DEAL_ENTRY_IN) и закрытие позиций (DEAL_ENTRY_OUT), а также закрытие по Stop loss (DEAL_REASON_SL).
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)
{
long deal_entry =0;
string deal_symbol ="";
long deal_magic =0;
long deal_reason =-1;
if(HistoryDealSelect(trans.deal))
{
deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON);
}
elsereturn;
if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
if(deal_entry==DEAL_ENTRY_OUT)
{
if(deal_reason==DEAL_REASON_SL)
SendNotification ("Закрыл позицию > StopLoss");
if(deal_reason==DEAL_REASON_TP)
SendNotification ("Закрыл позицию > TakeProfit");
}
}
}
请您尝试一下(我没有得到这个机会)。
谢谢你,我稍后会检查。
请帮助我正确定位该功能
...
但如何以及在何处插入
当达到止损或止盈时,要发送一个信息?
我们说的是同一件事吗?
我找到一个例子,用OnTradeTransaction 追踪SL出场:https://www.mql5.com/ru/code/21147。
在两个不同的工具上使用同一个EA
你好!请你帮帮我好吗?
我有一个EA,它在被拖动的图表上工作(Symbol() 值被当作符号的名称)。
但是这个EA也有一个ticket_exist变量,它包含了一个被设定的订单的票据,EA理解如果ticket_exist不等于0,那么订单就被设定在这里。
问题:如果我在两个不同的工具上打开这样的EA,并且在一个工具上ticket_exist变量不等于零,那么在另一个工具上同名的变量是否仍等于零?
SU。
在两个不同的工具上使用同一个EA
你好!请你帮帮我好吗?
我有一个EA,它在被拖动的图表上工作(Symbol() 值被当作符号的名称)。
但是这个EA也有一个ticket_exist变量,它包含了一个被设定的订单的票据,EA理解如果ticket_exist不等于0,那么订单就被设定在这里。
问题:如果我在两个不同的工具上打开这样的EA,并且在一个工具上ticket_exist变量不等于零,那么在另一个工具上同名的变量是否仍等于零?
SU。
一个EA中的变量值对另一个EA来说是不可用的。最主要的是,要么是符号,要么是魔力,要么是两者都不同。
你能告诉我现在是什么时间吗?服务器时间 还是UTC?
我记得在某个地方读到过,但不记得在哪里了......。
一个EA中的变量值对另一个EA来说是不可用的。最主要的是,要么符号,要么魔法,要么两者都应该不同。
谢谢! 如果我理解正确的话,那么为了使EA(两个绝对相同的)与不同的符号发生冲突,它们的变量应该被设置为全局(对整个终端),或者,例如,一个订单应该通过其序列号或仅仅通过其存在的事实来访问?
试试这个(我没有测试过)。
它不工作,它给出了编译错误。
我试着这样做了,它的编译没有任何问题,但我不能在溜冰场关闭的情况下测试它。
我明天就回去工作了。
它不工作,它给出了编译错误
我试着这样做,它的编译没有任何问题,但当溜冰场关闭时,我无法测试它
我明天会完成它。
你没有正确输入代码!
我把它固定了一下,就可以用了。
你没有正确输入代码!
我纠正了一下,它是有效的(我检查过)。
在这里,我们需要追踪交易是由SL还是TP准确完成的事实。而使用OnTradeTransaction,我们在交易结束后立即获得准备好的数据。
如果在TimeCurrent 有多于一个交易被关闭,应该返回什么结果?而且,出现利润并不意味着该交易被SL或TP平仓。正如我之前所说,这需要被追踪。因此,使用OnTradeTransaction,是最简单的解决方案
在这里,我们还需要追踪交易是在SL或TP上准确关闭的。
我把它理解为交易结束的通知,也许我弄错了......。
米哈伊尔-马特科夫斯基。
如果在TimeCurrent 有超过一个交易被关闭,我应该得到什么结果?
不知道,需要检查