EA: TrailingTakeProfit

 

TrailingTakeProfit:

这个EA交易不进行交易,它是设计用于对开启仓位进行简单的跟踪获利的。


作者: Scriptor

 
//+------------------------------------------------------------------+
//| 修改在票据上选择的位置
//+------------------------------------------------------------------+
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:

在所有继续检查之前创建专用变量是非常昂贵的(尤其是字符串)。


试想一下,如果对 10,000,000 个 ticks 的 100,000 次传递进行简单优化。那么 OnTick 将被调用一万亿次。任何被调用一万亿次的额外操作都将花费额外的秒/分/小时。珍惜自己和他人的时间。

这不是一个交易 EA。为什么要优化它?它只是一个拖网。而且还很奇怪。
 
Artyom Trishkin:
这不是一个交易 EA。为什么要优化它?它只是一个拖网。而且还是个奇怪的东西。

这是一个用于训练的迁移追踪功能。

 
fxsaber:

这是用于培训的迁移跟踪功能。

仅仅迁移是不够的。仅在本代码中使用。
 
Artyom Trishkin:
不足以进行迁移。仅适用于相关代码。

可迁移 - 当 90% 的代码被借用时。