你好,我的朋友,弗拉基米尔。
我对这个条件很感兴趣:
if( m_trade.ResultDeal()==0 ) { Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(), ", description of result: ",m_trade.ResultRetcodeDescription()); }
以下条件适合 OrderSendAsync() 函数 还是挂单?
if( m_trade.ResultDeal()==0 || m_trade.ResultOrder()==0 ) { Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(), ", description of result: ",m_trade.ResultRetcodeDescription()); }
非常好,我该如何使用这个 E A? 我喜欢你的推理,我一直想要一个这样参数描述的机器人
胜率还可以,如果能添加马丁的话,会更好!
打开第一个位置的条件是什么?还是必须手动打开?
284954 #:
打开第一个位置的条件是什么?还是必须手动开仓?
打开第一个位置的条件是什么?还是必须手动开仓?
EA 会等待 TP 或 SL 触发,然后反向开仓。在发送交易请求之前,它会检查是否有足够的资金。OnTradeTransaction.
例如,我们有一个未平仓的买入头寸。一旦触发 TP 或 SL,就会建立一个新的卖出头寸。然后,在触发 TP 或 SL 后,再建立一个新的买入头寸。
交易关闭在"OnTradeTransaction"中监控:
//+------------------------------------------------------------------+ //| TradeTransaction 函数| //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- 获得作为枚举值的事务类型 ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- 如果交易是历史交易增加的结果 if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_entry =0; long deal_type =0; string deal_symbol =""; long deal_magic =0; long deal_time =0; if(HistoryDealSelect(trans.deal)) { deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_type=HistoryDealGetInteger(trans.deal,DEAL_TYPE); deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) { if(deal_entry==DEAL_ENTRY_OUT) { if(deal_type==DEAL_TYPE_BUY || deal_type==DEAL_TYPE_SELL) { if(deal_type==DEAL_TYPE_BUY) m_close_pos_type=POSITION_TYPE_SELL; else if(deal_type==DEAL_TYPE_SELL) m_close_pos_type=POSITION_TYPE_BUY; else return; m_is_trade=true; } } else if(deal_entry==DEAL_ENTRY_IN) { m_is_trade=false; } } } }
cheduecoglioni:
作者: Vladimir Karputov