多时间框架指标 - 页 5

 
sailor:
看起来不错,但我想知道为什么我不能附加日元对,唯一的原因是,我认为日元对在使用 ehh my english lol .... 比较报价。

欧元有1.2000,美元兑日元117.50(看小数点后)。

水手

我本来想发这个帖子的,但我忘了。 因为你上面所描述的情况,它在一些货币对中不起作用。 我将不得不尝试用我的头脑去思考,想出一个通用的多用途公式,将它们全部正常化。 我想我会向Code Guru或Igor寻求帮助。

我在工作休息时很快就完成了这个公式,所以让我今晚研究一下,看看是否能解决所有的错误。

另外,我更新了指标,使CorrBarrs默认为50而不是100。 其实这并不重要,但在较高的时间段(D1),有时价格在100天内分离得很厉害,以至于你在屏幕上看不到两个MAs。

 
sailor:
有没有人知道在代码中哪里可以修改,以便可以在移动平均线上使用这个函数 ------ extern string Currency = "NULL";-------- ...

我试着想把剩下的代码写在哪里,但做不到。Newdigital前段时间用macd做了一个di... https://c.mql5.com/forextsd/forum/2/macd_gbp_on_jpy_h1.gif...

我的想法是使用Keris的MTF移动平均数进行相关分析,我只是想知道它将会是什么样子。

水手

水手。

试试这个。 #MTF_MovingAverage相关性

它将绘制两条移动平均线,一条是当前的符号,另一条是你输入的任何符号。 你仍然可以将时间框架设置为你想要的任何内容。

有2个新的输入。

  1. 货币(当你输入货币进行比较时,你必须使用所有的大写字母)- 默认是空的,所以你将看到的是1条移动平均线,直到你为这个输入值输入。)
  2. CorrBars(你希望从多少个柱子后开始关联。) - 默认=100

相关货币的MA值,必然是不正确的。(相关货币的价格通常与基础货币相差太大。 你无法在图表上看到它,所以它被 "规范化 "以适应。) 但是,MA的 "外观 "是正确的,所以你应该能够做一个很好的相关比较。

我希望这是你想要的。 如果你发现它有什么问题,或者你想要别的东西,请告诉我。

我附上了2张照片,以显示它的样子。 这些照片显示了以下内容。

欧元兑美元H4图表

SMA(13) - D1时间框架

USDCHF的SMA(13) - D1时间框架

欧元兑美元H4图表

均线(5) - D1时间框架

英镑兑美元的SMA(5)-D1时间框架

凯里斯

 

我记得我在发布Gridbuilder之前也遇到了同样的问题,一个程序员帮助了我,应该是除数的问题,我把Gridbuilder的一些代码包了出来

double Divisor = 0.1/Point;

HighPrice = MathRound(High * Divisor);

//SL = 高。

LowPrice = MathRound(Low[Lowest(NULL,0,MODE_LOW, Bars - 1, 2)] * Divisor)。

GridS = GridSpace / 10;

水手

 

多时间框架指标

你好,亲爱的Keris。

请您帮助将这个MACD-2转换为多时间框架?

非常感谢

景明

//+------------------------------------------------------------------+

//| macd-2.mq4|

//| Copyright ?2004, MetaQuotes Software Corp.|

//|http://www.metaquotes.net/|

//+------------------------------------------------------------------+

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

//---- 指标设置

#property indicator_separate_window

#属性 indicator_buffers 4

#属性 indicator_color1 品红

#属性 indicator_color2 黄色

#属性 indicator_color3 白色

#属性 indicator_color4 黄色

//---- 指标参数

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalEMA=8;

//---- 指标缓冲区

double ind_buffer1[];

double ind_buffer2[];

double ind_buffer3[];

double ind_buffer4[];

//+------------------------------------------------------------------+

//|自定义指标初始化函数|

//+------------------------------------------------------------------+

int init()

{

//---- 2个额外的缓冲区被用于计数。

IndicatorBuffers(5)。

//---- 绘图设置

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2)。

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2)。

SetIndexDrawBegin(0,SignalEMA);

SetIndexDrawBegin(1,SignalEMA);

//---- 4个指标缓冲区的映射

if(!SetIndexBuffer(0,ind_buffer1) &&)

!SetIndexBuffer(1,ind_buffer2) && !

!SetIndexBuffer(2,ind_buffer3) && !

!SetIndexBuffer(3,ind_buffer4))

Print("不能设置指标/缓冲区!")。

//---- DataWindow和指标子窗口标签的名称

IndicatorShortName("MACD-2")。

//---- 初始化完成

return(0);

}

//+------------------------------------------------------------------+

//| 振荡器 |

//+------------------------------------------------------------------+

启动()

{

int limit;

int counted_bars=IndicatorCounted()。

double prev,current;

//----,检查可能的错误

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

//---- 最后一个被计算的柱子将被重新计算。

如果(counted_bars>0) counted_bars--;

limit=Bars-counted_bars。

//---- macd在第1个额外的缓冲区中被计数。

for(int i=0; i<limit; i++)

ind_buffer3=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i) 。

//---- 信号线在第2个附加缓冲区中计数

for(i=0; i<limit; i++)

ind_buffer4=iMAOnArray(ind_buffer3,Bars,SignalEMA,0,MODE_EMA,i)。

//----,在2个缓冲区之间分配数值

bool up=true。

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

{

current=ind_buffer3-ind_buffer4;

prev=ind_buffer3-ind_buffer4。

如果(current>prev) up=true。

如果(current<prev) up=false。

if(!up)

{

ind_buffer2=3*current;

ind_buffer1=0.0。

}

否则

{

ind_buffer1=3*current;

ind_buffer2=0.0。

}

}

return(0);

}

 

Macd-2

zhu28ming,

这里是MACD-2的MTF版本。记住,你需要原始的macd-2.mq4和新的#MTF_MACD-2.mq4才能工作。

Keris

附加的文件:
macd-2.mq4  3 kb
 

Macd-2

非常感谢你的帮助,Keris。它真的解决了我的大问题。

Jingming.zhu

 

Kerrie或其他你知道是否有可能像克隆移动平均线 一样,在现有的移动平均线之上/之下的点位?

水手

 

我只是忘记了我的最后一个帖子,但如果有人也在考虑同样的问题,那就在指标属性 窗口中添加。但是Kerry你知道为什么我们不能在MTF移动平均线上这样做吗?

水手

 
sailor:
我忘了我的上一篇文章,但如果有人想做同样的事情,可以在指标属性窗口中添加级别。但是Kerry,你知道为什么我们不能在MTF移动平均线上这样做吗?

自定义指标不支持水平。 我修改了#MTF_MovingAverage.mq4,这样你就可以添加水平(模拟)。 使用输入选项卡。 如果你想要级别,把UseLevels改为True。 然后,你可以将0-5级设置为你想要的任何级别。

见图片。 让我知道,如果它对你来说是可行的。

凯丽斯

附加的文件:
 
keris2112:
自定义指标不支持水平。 我已经修改了#MTF_MovingAverage.mq4,这样你就可以添加水平(模拟)。 使用输入标签。 如果你想要级别,把UseLevels改为True。 然后,你可以将0-5级设置为你想要的任何级别。

见图片。 让我知道,如果它对你来说是可行的。

Keris

我在我的图表上使用了你的MTF_moving average,它非常非常好,我以前下载过,我不知道这个是否不同,但你的工作实在令人惊叹。

杰克