市场:没有交易业务 - 页 7

 
Vitaly Muzichenko:

构建一个有大量返回的正常函数,而不是一个真/假检查

而且他喜欢做额外的检查。你必须检查它是否是一个策略测试器,然后额外检查检查VolumeValue 函数返回的内容...

 
Evgeny Belyaev:

你是斜着看的吗?

还有什么问题要问我吗?

当我们看到信号时,你的圣杯在哪里?

从产品的构成来看,你并没有将你的EA倾倒在市场上。

所以...

你好

;)

 
Vladislav Andruschenko:


那么,这应该不会有问题。

相同的多币种,通过测试。

而没有交易操作可能是来自于测试人员的心情:-)- 我不知道他是否心情不好(即提神、睡觉、休息一天),他没有做任何交易。

尝试不同的传播方式或等待一天就足够了,它又跳过了一切的情绪。

我正在检查,没有任何问题,各项功能都在完美运行。删除了对最小手数的检查,这是为了如果最小允许超过0.01,则不进行交易。
在验证器中,我看到一个大于0.01的手,所以我没有交易。

 
Renat Akhtyamov:

从产品的构成来看,你没有把EA倒入市场。

所以...

你好

;)

好吧,我做到了,所以这是另一个无奈之举。你想要这个链接,还是你自己能找到它?

当我们看到信号时,你的圣杯在哪里?

我甚至为一个男人做了一件事。


 

你看,我有猫头鹰,第一个手数是从设置中提取的,这意味着只有当用户在输入手数时犯了错误,它才可能少于允许的手数。

例如,用户打错了字,写成了0.005,而他想交易的是0.05手--如果你检查一下,猫头鹰会交易0.01手(假设0.01是最小手)。

如果你想在0.005交易,想在0.05交易--你可以添加一个提醒。

我相信这是一个个人决定的问题,谁想要这样那样的....。

顺便说一下,这里有一部分代码(我也是早先写的),当检查时也失败了。

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
 ......

}
 
Evgeny Belyaev:

我有点这样做了,所以这又是一个无奈。你想要这个链接还是你自己能找到?

当我们看到信号时,你的圣杯在哪里?

我不喜欢和想法猎人谈论这种话题

 
Renat Akhtyamov:

我宁愿不和想法猎人谈论这种东西。

那你为什么还说话?)

你让我觉得很无聊。我们都在等待CME发出的有计算量的信号。CME上不是有清算吗?

 
Maksim Neimerik:

你看,我有猫头鹰,第一个手数是从设置中提取的,这意味着只有当用户在输入手数时犯了错误,它才可能少于允许的手数。

例如,用户打错了字,写成了0.005,而他想交易的是0.05手--如果你检查一下,猫头鹰会交易0.01手(假设0.01是最小手)。

如果你想在0.005交易,想在0.05交易--你可以添加一个提醒。

我相信这是一个个人决定的问题,谁想要这样那样的....。

顺便说一下,这是检查失败时的部分代码(我以前也写过)。

你必须先做所有的事情,然后检查最小/最大。

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

并在返回时立即进行规范化处理

return(NormalizeDouble(volume,LotDigit(symb)));
 
Vitaly Muzichenko:

先做所有事情,然后检查最小/最大值

然后在返回时立即进行规范化处理。

总的来说,好吧,是时候结束这次谈话了。

一些想象中的缺陷你马上就看到了,但本质(我写的是地段的回归)一直没有引起你的注意......。

谢谢大家的帮助!

 
Maksim Neimerik:

总而言之,是时候结束这次谈话了。

一些想象中的缺点你一下子就看到了,但本质(我写的是地段的回归)却没有引起你的注意......。

谢谢大家的帮助!

马克西姆,你能听到我吗?

重新阅读我给出的代码和它的信息

关于交易、自动交易系统和交易策略测试的论坛

市场:没有交易业务

Vitaly Muzichenko, 2020.01.27 18:37

你必须先做一切,然后检查最小/最大。

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

并在返回时立即将其正常化

return(NormalizeDouble(volume,LotDigit(symb)));

你检查最小/最大,然后进行计算,所以计算可以是任何东西。你应该在计算后检查最小/最大值,而不是在计算前。

---------------------------

而这里是我的)