多时间框架指标 - 页 108

 

mtf的坡度

看这里 阿尔法-24seven

https://www.mql5.com/en/forum/173574

[删除]  

谢谢Lodol2

对不起,我错过了这些。谢谢你让我注意到它们。

我在编译的时候遇到了一些问题。我以前从未见过这个错误。有什么想法吗?

见图

谢谢你。

附加的文件:
 

我同意你所说的一切,但我认为我说得不够清楚。

keris公式在实时情况下不是这样的(不刷新图表!),它看起来更像那条黄线;如果你刷新图表,是的,一切看起来都很好--但是,为什么我们不简单地使用第二个具有较高时间框架的图表......并确认指标只在较高时间框架上移动?

从你在较低的时间框架上绘制一个MTF指标的那一刻起,你就有了在该时间框架上(而不是在较高的时间框架上)平均一些数据的另一种方式。 它永远不会像原来那样--但它可以被近似。

mladen:
红线是你所建议的MA的近似值

品红是Keris的MTF MA方式

金色线是较高时间段MA在较低时间段的真实值

正如你所看到的,在一段时期内几乎没有一个正确的近似值,而Keris的公式在每个时期至少给出一个正确的值。总之,Metatrader中的近似值的公式是:

MAperiod=MAperiod*TimeFrame/Period()

如果你试图将这个近似值应用于移动平均线衍生的指标(例如MACD),你会出现很大的差异,我是说很大的差异(我曾见过1H时间框架上的4H MACD有7-8%的差异)。

一个反问:你认为有多少人尝试了不同的多时间框架指标的方法?
[删除]  

代码中的错误

我发现了。这段额外的代码被留在了文件中--在最后。只要把它删除,然后编译,就可以了。

优秀的指示器,BTW。

---

/*

void drawLine(double lvl,string name, color Col )

{

ObjectDelete(name);

ObjectCreate(name,OBJ_HLINE, WindowFind(name), Time[0], lvl,Time[0], lvl);

ObjectSet(name, OBJPROP_STYLE, STYLE_DOT)。

ObjectSet(name, OBJPROP_COLOR, Col);

ObjectSet(name,OBJPROP_WIDTH,1);

}

---

 

...

黄线是 "真正的MTF "移动平均线

没有必要 "刷新 "图片上的任何指标

至于其他方面,请再次阅读该帖子

问候

mladen

Scrat:
我同意你所说的一切,但我认为我说得不够清楚。

keris公式在实时情况下不是这样的(不刷新图表!),它看起来更像那条黄线;如果你刷新图表,是的,一切看起来都很好 - 但是,为什么我们不简单地使用第二个具有较高时间框架的图表...并确认指标只在较高时间框架上移动?

从你在较低的时间框架上绘制一个MTF指标的那一刻起,你就有了在该时间框架上(而不是在较高的时间框架上)平均一些数据的另一种方式。 它永远不会像原来那样--但它可以被近似。
 

需要为这个印度人提供Mtf

大家好。

我一直希望能够在我的图表上绘制不同时间段的指标。

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

//| Fisher_m11.mq4 !

//| Copyright ฉ forexjr

//| /cam06/fisher的索引

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

#property copyright "Copyright ฉ 23.07.2006 MartinG "

#property link "http://home.arcor.de/cam06/fisher"

#属性 indicator_separate_window

//#property indicator_minimum -1

//#属性 indicator_maximum 1

#属性 indicator_buffers 3

#属性 indicator_color2 RoyalBlue

#属性 indicator_color3 红色

#属性 indicator_width2 0.5

#属性 indicator_width3 0.5

int LeftNum1=56;

int LeftNum2=56;

Extern int RangePeriods=35;

外置双倍PriceSmoothing=0.3; // =0.67 bei Fisher_m10

extern double IndexSmoothing=0.3; // =0.50 bei Fisher_m10

string ThisName="Fisher_kuskus";

int DrawStart;

//---- 缓冲区

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

双倍ExtMapBuffer4[]。

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

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

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

int init()

{

//---- 指标

IndicatorBuffers(4);

SetIndexLabel(0, "Star");

SetIndexStyle(0,DRAW_NONE);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(2,DRAW_HISTOGRAM);

SetIndexBuffer(2,ExtMapBuffer3);

SetIndexStyle(3,DRAW_NONE);

SetIndexBuffer(3,ExtMapBuffer4)。

string Text=ThisName;

Text=Text+" (rPeriods "+RangePeriods;

Text=Text+", pSmooth "+DoubleToStr(PriceSmoothing,2);

Text=Text+", iSmooth "+DoubleToStr(IndexSmoothing,2);

Text=Text+")"。

IndicatorShortName(Text);

SetIndexLabel(1,NULL);

SetIndexLabel(2,NULL);

DrawStart=2*RangePeriods+4; // DrawStart=从左到右计算的BarNumber

SetIndexDrawBegin(1,DrawStart);

SetIndexDrawBegin(2,DrawStart);

如果(PriceSmoothing>=1.0)

{

PriceSmoothing=0.9999。

Alert("Fish61: PriceSmothing系数必须小于1!")。

}

如果(PriceSmoothing<0)

{

PriceSmoothing=0。

Alert("Fish61: PriceSmothing系数不能为负值!")。

}

如果(IndexSmoothing>=1.0)

{

IndexSmoothing=0.9999。

Alert("Fish61: PriceSmothing系数必须小于1!")。

}

如果(IndexSmoothing<0)

{

IndexSmoothing=0。

Alert("Fish61: PriceSmothing factor mustn''t be negative!");

}

//----

return(0);

}

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

//| 自定义指标的去初始化功能。

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

int deinit()

{

//----

//----

return(0);

}

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

//|自定义指标迭代函数|

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

int start()

{

如果(Bars<DrawStart)

{

Alert("Fish84: 在RangePeriods=",RangePeriods的情况下没有加载足够的Bars来计算FisherIndicator。)

返回(-1)。

}

//----

int counted_bars=IndicatorCounted()。

如果(counted_bars<0)返回(-1)。

如果(counted_bars>0) counted_bars--。

//----

int Position=Bars-counted_bars; // Position = 从右到左计算的BarPosition

int LeftNum1=Bars-Position; // 当加载更多的条形图时,条形图的位置会改变,但其LeftNum不会改变。

如果(LeftNum1<RangePeriods+1)Position=Bars-RangePeriods-1;

while(Position>=0)

{

CalculateCurrentBar(Position);

位置--。

}

//----

return(0);

}

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

//|单条计算功能|

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

int CalculateCurrentBar(int pos)

{

double LowestLow, HighestHigh, GreatestRange, MidPrice;

double PriceLocation, SmoothedLocation, FishIndex, SmoothedFish;

//----

LowestLow = Low[Lowest(NULL,0,MODE_LOW,RangePeriods,pos)] 。

HighestHigh = High。

如果(HighestHigh-LowestLow<0.1*Point)HighestHigh=LowestLow+0.1*Point。

GreatestRange=HighestHigh-LowestLow。

MidPrice = (High[pos]+Low[pos])/2;

// 当前范围内的价格位置

如果(GreatestRange!=0)

{

PriceLocation=(MidPric-LowestLow)/GreatestRange。

PriceLocation= 2.0*PriceLocation - 1.0; // -1 < PriceLocation < +1

}

//对PriceLocation进行平滑处理

ExtMapBuffer4[pos]=PriceSmoothing*ExtMapBuffer4[pos+1]+(1.0-PriceSmoothing)*PriceLocation。

SmoothedLocation=ExtMapBuffer4[pos];

if (SmoothedLocation> 0.99) SmoothedLocation= 0.99; // verhindert, dass MathLog unendlich wird

如果(SmoothedLocation<-0.99)SmoothedLocation=-0.99; // 证实,MathLog的最小值不会被改变。

// FisherIndex

if(1-SmoothedLocation!=0) FishIndex=MathLog((1+SmoothedLocation)/(1-SmoothedLocation) 。)

else Alert("Fisher129: Unerlaubter Zustand bei Bar Nummer",Bars-pos);

// 对FisherIndex进行平滑处理

ExtMapBuffer1[pos]=IndexSmoothing*ExtMapBuffer1[pos+1]+(1.0-IndexSmoothing)*FishIndex。

如果(Bars-pos<DrawStart)ExtMapBuffer1[pos]=0。

SmoothedFish=ExtMapBuffer1[pos];

如果(SmoothedFish>0)//上升趋势

{

ExtMapBuffer2[pos]=SmoothedFish。

ExtMapBuffer3[pos]=0。

}

否则 // 否则下降趋势

{

ExtMapBuffer2[pos]=0。

ExtMapBuffer3[pos]=SmoothedFish。

}

//----

return(0);

}

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

谢谢

 
mladen:
人们,让我们严肃起来吧

我是认真的 mladen...

我是一个新手,不是一个程序员,也许scrat的方法并不完美,但也许我可以用它。我将尝试一下。如果它有用,我就用它。如果没有用,我将再次寻找另一种伟大的方法或其他指标。

我曾经问过Codersguru关于类似的事情。

我向他提出的问题是,如果我在30M TF中使用1 EMA,那么在1M TF中必须是30 EMA。

他说不是这样的。但我并不满意,也许有其他的方法,所以我在这里找到了它。但如果它没有用,对我来说也没什么... 。至少我知道结果是什么。

顺便说一下,感谢最新的RSIOMA mladen,我非常喜欢它,也感谢fxbs和Kalenzo,感谢这个伟大的指标。

谢谢。

IIN

 

问题是这样的。

那个关于MA的想法可能是技术分析 中最古老的想法。

我同意,像TSD这样的地方是分享想法和知识的地方。

但请不要试图以这种方式来做。

我只是想知道你们中是否有人曾想过同时在较高和较小的tf上对同一指标进行对应,....。

拜托,我们在这里到底想做什么?

我希望现在我说清楚了

问候

mladen

iinzall:
我是认真的 mladen...

我是一个新手,不是一个程序员,可能scrat的方法不完美,但也许我可以使用它。我会试试的。如果它有用,我就会使用它。如果没有用,我将再次寻找另一种伟大的方法或其他指标。

我曾经问过Codersguru关于类似的事情。

我向他提出的问题是,如果我在30M TF中使用1 EMA,那么在1M TF中必须是30 EMA。

他说不是这样的。但我并不满意,也许有其他的方法,所以我在这里找到了它。但如果它没有用,对我来说也没什么... 。至少我知道结果是什么。

顺便说一下,感谢最新的RSIOMA mladen,我非常喜欢它,也感谢fxbs和Kalenzo,感谢这个伟大的指标。

谢谢。

IIN
 

好吧,我是正式的哑巴,我刚刚冒犯了这个线程中的每个人。 这次我说对了吗?

我很抱歉。

mladen:
问题是这样的。

MA的想法可能是技术分析中最古老的想法。

我确实同意像TSD这样的地方是分享想法和知识的地方。

但请大家不要尝试这样做。

拜托,我们到底想在这里做什么?

我希望现在我已经说得很清楚了

问候

mladen
[删除]  

有没有人知道这些MTF指数在哪里?

我已经到处寻找这些MTF版本。有没有人知道或见过它们?

谢谢你。

附加的文件: