编码帮助 - 页 759

 
亲爱的MLADEN

至于编译"'订单发送/选择、修改、关闭'的返回值 "时的警告,以前是通过添加(bool dummyResult)来纠正的,但现在我看到你只用了(bool dummy),是所有情况都可以,还是新的(bool dummy)适用于某些特定指标和情况?

问候
 
mntiwana:
最亲爱的MLADEN 至于编译"'订单发送/选择、修改、关闭'的返回值 "时的警告,以前是通过添加(bool dummyResult)来纠正的,但现在我看到你仅仅使用(bool dummy),是对所有和所有情况都可以,还是对某些特定指标和情况使用新的(bool dummy)? regards



通常情况下,这些警告是良性的。

真正用于检查 订单操作是否正常的是GetLastError()(因为它提供了比订单操作默认返回的简单布尔值更多的细节)--所以,是的,它是可以的,然后,如果需要更多可能的错误细节,那么,通过各种方式,应该使用GetLastError()。
 
wojtekpaul:

(1月31日之后我们会做什么?) :(

WojtekPaul。

你这话是什么意思?

 
chrisstoff:

WojtekPaul。

你这话是什么意思?

他的意思是这样的: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

但也可以看看 这个帖子: https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089
 
mladen:
通常情况下,这些警告是良性的。

真正用于检查订单操作是否正常的是GetLastError()(因为它提供了比订单操作默认返回的简单布尔值更多的细节)--所以,是的,它是可以的,然后,如果需要更多可能的错误的细节,那么,通过所有手段,GetLastError()应该被使用。
亲爱的MLADEN

谢谢你的帮助指导。

问候
 
mladen:
他是指这个:https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

但也可以看看这个帖子:https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089

姆拉登。

谢谢你提供的信息。这里是/曾经是我最喜欢的论坛之一,所以对我来说也是一个坏消息。不过,在网络上还有其他地方有现成的论坛和聊天功能。(我把一个例子放在 "Forex-TSD将被终止 "主题中)。

 

大家好。


我需要一个程序员为这个策略添加一个带有警报的箭头。这个策略的手动操作可以获得100%的胜利。


以下是该策略的链接。

http://www.binaryoptionsedge.com/topic/1879-high-power-option-2015/page-2#entry108014

帖子#29

Obrigado.

 

亲爱的Mladen,以下两个函数 是否可能

iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_HIGH,i);

and

iCustomMa(ma_ema,getPrice(pr_high,Open,Close,High,Low,i),MAPeriod,i,0);
(or iCustomMa(ma_ema,iMA(NULL,0,1,0,MODE_SMA,PRICE_HIGH,i),MAPeriod,i,0); )
其中ma_ema定义如下。
#define _maWorkBufferx1 1
#define _maWorkBufferx2 2
#define _maWorkBufferx3 3
#define _maWorkBufferx5 5
double iCustomMa(int mode, double price, double length, int i, int instanceNo=0)
{
   if (length<=1) return(price);
   int r = Bars-i-1;
   switch (mode)
   {
      // ...
      case ma_ema   : return(iEma(price,length,r,instanceNo));
      // ...
      default : return(0);
   }
}

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
   double alpha = 2.0 / (1.0+period);
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
这是否意味着
iEma的工作原理与内置EMA稍有不同?
 
wojtekpaul:

亲爱的Mladen,以下两个函数是否有可能。

iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_HIGH,i);

and

iCustomMa(ma_ema,getPrice(pr_high,Open,Close,High,Low,i),MAPeriod,i,0);
(or iCustomMa(ma_ema,iMA(NULL,0,1,0,MODE_SMA,PRICE_HIGH,i),MAPeriod,i,0); )
其中
#define _maWorkBufferx1 1
#define _maWorkBufferx2 2
#define _maWorkBufferx3 3
#define _maWorkBufferx5 5
double iCustomMa(int mode, double price, double length, int i, int instanceNo=0)
{
   if (length<=1) return(price);
   int r = Bars-i-1;
   switch (mode)
   {
      // ...
      case ma_ema   : return(iEma(price,length,r,instanceNo));
      // ...
      default : return(0);
   }
}

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
   double alpha = 2.0 / (1.0+period);
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
这是否意味着
iEma的工作原理与内置EMA略有不同?
EMA取决于以前的值。如果你在整个系列上计算数值,它们应该返回非常相似的数值。如果不是这样(如果你试图只计算一个值),它们将是不一样的,因为iMA()将在幕后计算整个系列,而iCustomMa()将只计算你要求的值。

在整个系列中循环使用iCustomMa(),结果应该是一样的。


PS:iEma()已经过时了。新版本是这样的(它不会改变数值,但它是 "严格模式证明")。
double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
  
   workEma[r][instanceNo] = price;
   if (r>0 && period>1)
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+(2.0/(1.0+period))*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
 

非常感谢你的快速回复!你能告诉我在哪里可以找到

我可以在哪里找到当前的移动平均线 的代码。

enum enMaTypes
{
   ma_sma,     // simple moving average - SMA
   ma_ema,     // exponential moving average - EMA
   ma_dsema,   // double smoothed exponential moving average - DSEMA
   ma_dema,    // double exponential moving average - DEMA
   ma_tema,    // tripple exponential moving average - TEMA
   ma_smma,    // smoothed moving average - SMMA
   ma_lwma,    // linear weighted moving average - LWMA
   ma_pwma,    // parabolic weighted moving average - PWMA
   ma_alxma,   // Alexander moving average - ALXMA
   ma_vwma,    // volume weighted moving average - VWMA
   ma_hull,    // Hull moving average
   ma_tma,     // triangular moving average
   ma_sine,    // sine weighted moving average
   ma_linr,    // linear regression value
   ma_ie2,     // IE/2
   ma_nlma,    // non lag moving average
   ma_zlma,    // zero lag moving average
   ma_lead,    // leader exponential moving average
   ma_ssm,     // super smoother
   ma_smoo     // smoother
};

据我所知,这是最后一个开放代码的移动平均线列表。

(其他MAs已经是ex4格式)。