如何编码? - 页 320

 

大家好,我想看看 是否有办法跟踪当前价格?

例如,当价格越过一个预先设定的点时,它将立即触发交易。我在网上找到的主要是指收盘价、高点、低点等。谁能帮帮我。谢谢。

谢谢

特伦斯

 

如果我理解正确,你应该使用Askand Bid。问是指新的买单,买是指新的卖单

tkuan77:
大家好,我想看看是否有办法跟踪当前价格?

例如,当价格越过一个预先设定的点时,它将立即触发交易。我在网上找到的主要是指收盘价、最高价、最低价等。谁能帮帮我。谢谢。

疑问

特伦斯
 

是的,Mladen,这就是我现在正在使用的东西。也许我的问题没有解释清楚。我想实现的是,比如说,我预设了一个点,比如之前的D1蜡烛收盘价加减20点,如果当前价格达到预设的点(D1+20点)或(D1-20点),就会触发买入或卖出,而不管当前蜡烛是收盘还是现在。

所以我现在想实现的是如何让我的系统在价格达到所谓的(D1+20点)或(D1-20点)时触发交易。提前感谢您的建议。

问候

特伦斯

mladen:
如果我理解正确,你应该使用Askand Bid。新的买入订单的问价和新的卖出订单的买价。
 

现在我真的不确定我是否理解,但会试一试。像这样(这不是真正的代码,只是一个如何检查 的例子--在大多数情况下,收盘价和买入价是一样的)。

if (close[1](D1+20pips)) trigger up action

if (close[1]>(D1-20pips) && close[0]<(D1-20pips)) trigger down action

tkuan77:
是的,Mladen,这就是我现在正在使用的。也许我的问题没有解释清楚。我想实现的是,比如说,我预设了一个点,比如之前的D1蜡烛收盘价加减20点,如果当前价格达到预设的点(D1+20点)或(D1-20点),就会触发买入或卖出,而不管当前蜡烛是收盘还是现在。

所以我现在想实现的是如何让我的系统在价格达到所谓的(D1 + 20点)或(D1 - 20点)时触发交易。提前感谢您的建议。

谢谢

特伦斯
 

嗨,Mladen。

是的,我已经设法解决了不少我遇到的错误,但是有一个问题仍然困扰着我。我怎样才能触发。

1) 当FastMA1向上穿过SlowMA1 10个点时,做多交易

2) 当FastMA1与SlowMA1相交10个点时,做空交易。

我不知道的是,如何在代码中加入MA以对10点做出反应。

/*--------------------------------------------------------------------------------*/

FastMA1 = iMA(NULL,PERIOD_M30,10,0,MODE_SMA,PRICE_CLOSE,0)。

SlowMA1= iMA(NULL,PERIOD_M30,20,0,MODE_SMA,PRICE_CLOSE,1)。

如果(FastMA1 > SlowMA1)

{Long}(长)。

如果(FastMA1 < SlowMA1)

{短线}

/*--------------------------------------------------------------------------------*/

谢谢你的帮助,感谢你的帮助。

谢谢

特伦斯

mladen:
现在我真的不确定我是否理解,但会试一试。像这样(这不是一个真正的代码,只是一个如何检查的例子 - 在大多数情况下,关闭和出价是相同的)。
if (close[1](D1+20pips)) trigger up action

if (close[1]>(D1-20pips) && close[0]<(D1-20pips)) trigger down action

 

试试这样的方法:

double pipMultiplier=1; if (Digits==3 || Digits==5) pipMultiplier=10;

double diff = 10*Point*pipMultiplier;

如果(FastMA1 > SlowMA1+diff)

{Long}

如果(FastMA1 < SlowMA1-diff)

{短}

tkuan77:
嗨,Mladen。

是的,我已经设法解决了不少我遇到的错误,然而有一个问题仍然困扰着我。我怎样才能触发。

1) 当FastMA1向上穿过SlowMA1 10个点时做多交易

2) 当FastMA1与SlowMA1相交10个点时,做空交易。

我不知道的是,如何在代码中加入MA以对10点做出反应。

/*--------------------------------------------------------------------------------*/

FastMA1 = iMA(NULL,PERIOD_M30,10,0,MODE_SMA,PRICE_CLOSE,0)。

SlowMA1= iMA(NULL,PERIOD_M30,20,0,MODE_SMA,PRICE_CLOSE,1)。

如果(FastMA1 > SlowMA1)

{Long}(长)。

如果(FastMA1 < SlowMA1)

{短线}

/*--------------------------------------------------------------------------------*/

谢谢你的帮助,感谢你的帮助。

谢谢你的帮助。

特伦斯
 

Malden 我试着用你的答案来编写关于前一个h1蜡烛日的指标。但我无法做到这一点。

我有一个例子。

我有一个指标,在独立窗口中只有一个缓冲区。它画了一条线,像rsi, atr等等等等。

现在我需要在同一个单独的窗口中添加一条线(水平线),它是由过去24天的指标值的平均值计算出来的(由于这个原因,我说的是24天,它只是1小时)。我怎样才能做到这一点?是否可以为过去的每一天都画这条线?

我知道我必须增加一个缓冲区。

我怎样才能在这个缓冲区提供我所需要的东西呢?

谢谢你。

 

...

dasio

你所描述的看起来像是一个常规指标(rsi, atr, ...)和同一指标的多时间框架平均值的组合。你有试过这种方式吗?

dasio:
马登,我试着用你的答案来编写关于前一个h1蜡烛日的指标。但我做不到。

我有一个例子。

我有一个指标,在不同的窗口中只有一个缓冲区。它画了一条像rsi, atr等等的线。

现在我需要在同一个单独的窗口中添加一条线(水平线),它是由过去24天的指标值的平均值计算出来的(由于这个原因,我说的是24天,它只有1小时)。我怎样才能做到这一点?是否可以为过去的每一天都画这条线?

我知道我必须增加一个缓冲区。

我怎样才能在这个缓冲区内提供我所需要的东西呢?

谢谢你
 
mladen:
dasio 你所描述的看起来像是一个常规指标(rsi, atr, ...)和同一指标的多时间框架平均值的组合。你有试过这种方式吗?

你好,谢谢你的回答。

也许我没有解释清楚。

我创建了一个指标,在一个单独的图表窗口中用我自己的计算方法在以前的条形图上画一条线。

现在我需要在指标中添加一条线,这条线的值等于上一天计算的最后24个值的演变,我需要在前一天画这条线。我附上一张图片。然而,这条线必须在一天结束时计算,因为它必须在我计算它的同一天的指标的la 24值上计算。

目前这个指标必须只在1小时的时间框架 内使用,所以它不是MTF指标。

谢谢你。

ps.白线的计算值与它们被打印的1天内的24值相同。

附加的文件:
example_1.gif  7 kb
 

...

晓晓

试试这样的方法。

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 OrangeRed

#property indicator_color2 Silver

#property indicator_width1 2

extern int RsiPeriod = 50;

extern int RsiPrice = PRICE_CLOSE;

double work[];

double avg[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

int init()

{

SetIndexBuffer(0,work);

SetIndexBuffer(1,avg);

return(0);

}

int start()

{

int i,countedBars = IndicatorCounted();

if (countedBars<0) return(-1);

if (countedBars>0) countedBars--;

int limit = MathMin(Bars-countedBars,Bars-1);

for(i=limit; i>=0; i--)

{

work = iRSI(NULL,0,RsiPeriod,RsiPrice,i);

int y = iBarShift(NULL,PERIOD_D1,Time);

int x = iBarShift(NULL,PERIOD_D1,Time);

if (x!=y)

{

int k = iBarShift(NULL,0,iTime(NULL,PERIOD_D1,y));

double average = work[k];

int c = 1;

for (int j=k-1; j>=i; j--,c++) average += work[j]; average /= c;

for ( j=k ; j>=i; j--) avg[j] = average;

}

}

return(0);

}

dasio:
你好,谢谢你的回答。

也许我没有解释清楚。

我创建了一个指标,在一个单独的图表窗口中用我自己的计算方法在以前的条形图上画一条线。

现在我需要在指标中添加一条线,这条线的值等于上一天计算的最后24个值的演变,我需要在前一天画这条线。我附上一张图片。然而,这条线必须在一天结束时计算,因为它必须在我计算它的同一天的指标的la 24值上计算。

目前这个指标必须只在1小时的时间框架内使用,所以它不是MTF指标。

谢谢你。

ps.白线的计算值与打印的1天时间段的24值相同。

附加的文件:
test.gif  34 kb
原因: