//+------------------------------------------------------------------+ //| 修改在票据上选择的位置 //+------------------------------------------------------------------+ bool PositionModifyByTicket(const string symbol_name,const ulong magic_number,const ulong ticket,const double sl,const double tp) { //--- 检查停止 if(IsStopped()) return(false); //----清洁 ZeroMemory(g_request); ZeroMemory(g_result); //--- 设置请求 g_request.action =TRADE_ACTION_SLTP; g_request.position=ticket; g_request.symbol =symbol_name; g_request.magic =magic_number; g_request.sl =sl; g_request.tp =tp; //--- 执行操作并返回结果 return(OrderSend(g_request,g_result)); }
多余。
//+------------------------------------------------------------------+ //|| 尾随函数| //+------------------------------------------------------------------+ void Trailing(void) { int total=PositionsTotal(); for(int i=total; i>=0; i--) { ulong ticket=PositionGetTicket(i); if(ticket==0) continue; string symbol_name=PositionGetString(POSITION_SYMBOL); ulong magic_number=(ulong)PositionGetInteger(POSITION_MAGIC); ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); if(InpPositionType>WRONG_VALUE && type!=(ENUM_POSITION_TYPE)InpPositionType) continue;
在所有继续检查之前创建专用变量是非常昂贵的(尤其是字符串)。
试想一下,如果对 10,000,000 个 ticks 的 100,000 次传递进行简单优化。那么 OnTick 将被调用一万亿次。任何被调用一万亿次的额外操作都将花费额外的秒/分/小时。珍惜自己和他人的时间。
fxsaber:
这不是一个交易 EA。为什么要优化它?它只是一个拖网。而且还很奇怪。
在所有继续检查之前创建专用变量是非常昂贵的(尤其是字符串)。
试想一下,如果对 10,000,000 个 ticks 的 100,000 次传递进行简单优化。那么 OnTick 将被调用一万亿次。任何被调用一万亿次的额外操作都将花费额外的秒/分/小时。珍惜自己和他人的时间。
Artyom Trishkin:
这不是一个交易 EA。为什么要优化它?它只是一个拖网。而且还是个奇怪的东西。
这不是一个交易 EA。为什么要优化它?它只是一个拖网。而且还是个奇怪的东西。
这是一个用于训练的迁移追踪功能。
fxsaber:
仅仅迁移是不够的。仅在本代码中使用。
这是用于培训的迁移跟踪功能。
Artyom Trishkin:
不足以进行迁移。仅适用于相关代码。
不足以进行迁移。仅适用于相关代码。
可迁移 - 当 90% 的代码被借用时。
TrailingTakeProfit:
这个EA交易不进行交易,它是设计用于对开启仓位进行简单的跟踪获利的。
作者: Scriptor