//--- 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;
double deal_profit =0.0;
double deal_volume =0.0;
string deal_symbol ="";
long deal_magic =0;
long deal_reason =-1;
if(HistoryDealSelect(trans.deal))
{
deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
deal_profit=HistoryDealGetDouble(trans.deal,DEAL_PROFIT);
deal_volume=HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
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");
}
}
}
等新的购买或出售
void OPENORDER(string ord)
{
double priceL=m_symbol.Ask();
if(ord=="Sell")
SendNotification (" открыл позицию > short");//--- check for free moneyif(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,my_lot,priceL)<0.0)
printf("We have no money. Free Margin = %f",m_account.FreeMargin());
elseif(!m_trade.Sell(my_lot,Symbol(),m_symbol.Bid(),my_SL,my_TP,""))
Print("BUY_STOP -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of Retcode: ",m_trade.ResultRetcodeDescription(),
", ticket of order: ",m_trade.ResultOrder()); // Если sell, то не открываемсяdouble priceS=m_symbol.Bid();
if(ord=="Buy")
SendNotification (" открыл позицию > long");//--- check for free moneyif(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,my_lot,priceS)<0.0)
printf("We have no money. Free Margin = %f",m_account.FreeMargin());
elseif(!m_trade.Buy(my_lot,Symbol(),m_symbol.Ask(),my_SL,my_TP,""))
Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription(),
", ticket of deal: ",m_trade.ResultDeal());
突出显示......如果<0,那么亏损交易的手数就会增加
如果>0,那么盈利交易的手数就会增加
你好。
我还有一个关于你的EA的问题
在模拟账户上测试时,发生了以下情况。
当EA达到指定的参数时,它已经转变为 "停止 "模式,即 "开始 "按钮被点亮,但交易并没有停止,交易非常短,简直是一两分钱。这是它应该有的样子吗?
我还发现,EA在关闭一些交易时,并没有在买入价或止损价上,也没有在资金限额上,而是 "白白 "关闭,而且在关闭前,价格已经超过了不同的点数。同时,专家顾问完全覆盖了之前的损失,几分钱,(例如,连续三个交易有(-15.59美元)一个盈利的交易=+15.62美元并立即关闭它!)。
看了一下日志,没有任何错误......。
你好。
我还有一个关于你的专家顾问的问题
在演示中测试时,发生了以下情况。
当EA达到预设参数时,它将切换到 "停止 "模式,即 "开始 "按钮是打开的,但交易并没有停止,而是开启非常短的交易,只有一两分钱。这是它应该有的样子吗?
我还发现,EA在关闭一些交易时,没有采取或停止,也没有在资金上限,而是 "白白 "关闭,价格在关闭前已经超过了不同的点数。同时,专家顾问完全覆盖了之前的损失,几分钱,(例如,连续三个交易有(-15.59美元)一个盈利的交易=+15.62美元并立即关闭它!)。
看了一下日志,没有任何错误......。
请把代码和你的修正发给我们。我们将拭目以待。
将您的代码与您的修复一起发布。我们会看到。
所以我仍在测试未更正的那个,你的原生那个。
所以我仍在测试未校正的那份,即你的本机。
我没有看到任何错误...
写出错误发生时是在什么时期、什么对子、什么参数。
我没有看到任何错误...
写出错误发生时在什么时期、什么对子、什么参数上出现。
这些设置。
Timeframe_RSI=0 period_RSI=14 level_buy=30 level_sell=70 Lot=0.01 K_Martin=1.6 Stoploss=200 Takeeprofit=1000 CountLoss=100.0 CountProfit=25.0 Magic=777 DigitsLot=2 slippage=3
以下是报告的内容。
在黄线 上有 "不清楚 "的收盘,既没有止损,也没有获利,更没有资金。
和蓝色--几乎立即开仓和平仓的交易
你好!
请告知在这个简单的EA中添加哪个功能和哪里。
除了现有的方式外,还可以将很多东西重置到最初的那个。
如果你想在达到当前头寸的缩减量时关闭当前头寸,以入金货币指定,然后,当你打开下一个头寸时,将手数重置为起始手数?
这里是设置。
Timeframe_RSI=0 period_RSI=14 level_buy=30 level_sell=70 Lot=0.01 K_Martin=1.6 Stoploss=200 Takeeprofit=1000 CountLoss=100.0 CountProfit=25.0 Magic=777 DigitsLot=2 slippage=3
以下是报告的内容。
那里的黄线"不清楚 "的关闭,既不是通过停止,采取,也不是通过金钱。
而蓝线代表的是几乎立即开启和关闭的交易。
在什么时间范围内?
等新的购买或出售
问候。请给我提供关于mt5的建议。
我需要做一个基于指标的EA,使EA可以在没有指标的情况下工作。
,是否可以使刻在其中的指标数据出现在图表上,使这些线不成为对象?
问候。请提供关于mt5的建议。
我需要做一个基于指标的EA,这样EA就可以在没有指标的情况下工作。
,是否可以在图表上显示写在指标上的数据,从而不使这些线成为对象?
ChartIndicatorAdd()