多时间框架指标 - 页 108 1...101102103104105106107108109110111112113114115...1223 新评论 lodol2 2007.09.18 19:54 #1071 mtf的坡度 看这里 阿尔法-24seven https://www.mql5.com/en/forum/173574 [删除] 2007.09.18 21:14 #1072 谢谢Lodol2 对不起,我错过了这些。谢谢你让我注意到它们。 我在编译的时候遇到了一些问题。我以前从未见过这个错误。有什么想法吗? 见图 谢谢你。 附加的文件: mtf_slope_graphic.jpg 16 kb florinv75 2007.09.19 16:05 #1073 我同意你所说的一切,但我认为我说得不够清楚。 keris公式在实时情况下不是这样的(不刷新图表!),它看起来更像那条黄线;如果你刷新图表,是的,一切看起来都很好--但是,为什么我们不简单地使用第二个具有较高时间框架的图表......并确认指标只在较高时间框架上移动? 从你在较低的时间框架上绘制一个MTF指标的那一刻起,你就有了在该时间框架上(而不是在较高的时间框架上)平均一些数据的另一种方式。 它永远不会像原来那样--但它可以被近似。 mladen: 红线是你所建议的MA的近似值品红是Keris的MTF MA方式 金色线是较高时间段MA在较低时间段的真实值 正如你所看到的,在一段时期内几乎没有一个正确的近似值,而Keris的公式在每个时期至少给出一个正确的值。总之,Metatrader中的近似值的公式是: MAperiod=MAperiod*TimeFrame/Period() 如果你试图将这个近似值应用于移动平均线衍生的指标(例如MACD),你会出现很大的差异,我是说很大的差异(我曾见过1H时间框架上的4H MACD有7-8%的差异)。 一个反问:你认为有多少人尝试了不同的多时间框架指标的方法? [删除] 2007.09.19 16:06 #1074 代码中的错误 我发现了。这段额外的代码被留在了文件中--在最后。只要把它删除,然后编译,就可以了。 优秀的指示器,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); } --- Mladen Rakic 2007.09.19 17:03 #1075 ... 黄线是 "真正的MTF "移动平均线 没有必要 "刷新 "图片上的任何指标 至于其他方面,请再次阅读该帖子 问候 mladen Scrat: 我同意你所说的一切,但我认为我说得不够清楚。 keris公式在实时情况下不是这样的(不刷新图表!),它看起来更像那条黄线;如果你刷新图表,是的,一切看起来都很好 - 但是,为什么我们不简单地使用第二个具有较高时间框架的图表...并确认指标只在较高时间框架上移动? 从你在较低的时间框架上绘制一个MTF指标的那一刻起,你就有了在该时间框架上(而不是在较高的时间框架上)平均一些数据的另一种方式。 它永远不会像原来那样--但它可以被近似。 lio 2007.09.20 07:41 #1076 需要为这个印度人提供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); } //+------------------------------------------------------------------+ 谢谢 Multi Timeframe Indicators Metatrader 5 coding questions 艾略特波 iinzall 2007.09.20 13:28 #1077 mladen: 人们,让我们严肃起来吧 我是认真的 mladen... 我是一个新手,不是一个程序员,也许scrat的方法并不完美,但也许我可以用它。我将尝试一下。如果它有用,我就用它。如果没有用,我将再次寻找另一种伟大的方法或其他指标。 我曾经问过Codersguru关于类似的事情。 我向他提出的问题是,如果我在30M TF中使用1 EMA,那么在1M TF中必须是30 EMA。 他说不是这样的。但我并不满意,也许有其他的方法,所以我在这里找到了它。但如果它没有用,对我来说也没什么... 。至少我知道结果是什么。 顺便说一下,感谢最新的RSIOMA mladen,我非常喜欢它,也感谢fxbs和Kalenzo,感谢这个伟大的指标。 谢谢。 IIN Mladen Rakic 2007.09.20 14:03 #1078 问题是这样的。 那个关于MA的想法可能是技术分析 中最古老的想法。 我同意,像TSD这样的地方是分享想法和知识的地方。 但请不要试图以这种方式来做。 我只是想知道你们中是否有人曾想过同时在较高和较小的tf上对同一指标进行对应,....。 拜托,我们在这里到底想做什么? 我希望现在我说清楚了 问候 mladen iinzall: 我是认真的 mladen... 我是一个新手,不是一个程序员,可能scrat的方法不完美,但也许我可以使用它。我会试试的。如果它有用,我就会使用它。如果没有用,我将再次寻找另一种伟大的方法或其他指标。 我曾经问过Codersguru关于类似的事情。 我向他提出的问题是,如果我在30M TF中使用1 EMA,那么在1M TF中必须是30 EMA。 他说不是这样的。但我并不满意,也许有其他的方法,所以我在这里找到了它。但如果它没有用,对我来说也没什么... 。至少我知道结果是什么。 顺便说一下,感谢最新的RSIOMA mladen,我非常喜欢它,也感谢fxbs和Kalenzo,感谢这个伟大的指标。 谢谢。 IIN florinv75 2007.09.20 22:17 #1079 好吧,我是正式的哑巴,我刚刚冒犯了这个线程中的每个人。 这次我说对了吗? 我很抱歉。 mladen: 问题是这样的。MA的想法可能是技术分析中最古老的想法。 我确实同意像TSD这样的地方是分享想法和知识的地方。 但请大家不要尝试这样做。 拜托,我们到底想在这里做什么? 我希望现在我已经说得很清楚了 问候 mladen [删除] 2007.09.20 22:39 #1080 有没有人知道这些MTF指数在哪里? 我已经到处寻找这些MTF版本。有没有人知道或见过它们? 谢谢你。 附加的文件: step_indis.gif 16 kb steprsi_v2.mq4 4 kb stepsto_v2.mq4 7 kb 1...101102103104105106107108109110111112113114115...1223 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
mtf的坡度
看这里 阿尔法-24seven
https://www.mql5.com/en/forum/173574
谢谢Lodol2
对不起,我错过了这些。谢谢你让我注意到它们。
我在编译的时候遇到了一些问题。我以前从未见过这个错误。有什么想法吗?
见图
谢谢你。
我同意你所说的一切,但我认为我说得不够清楚。
keris公式在实时情况下不是这样的(不刷新图表!),它看起来更像那条黄线;如果你刷新图表,是的,一切看起来都很好--但是,为什么我们不简单地使用第二个具有较高时间框架的图表......并确认指标只在较高时间框架上移动?
从你在较低的时间框架上绘制一个MTF指标的那一刻起,你就有了在该时间框架上(而不是在较高的时间框架上)平均一些数据的另一种方式。 它永远不会像原来那样--但它可以被近似。
红线是你所建议的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
我同意你所说的一切,但我认为我说得不够清楚。
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...
我是一个新手,不是一个程序员,也许scrat的方法并不完美,但也许我可以用它。我将尝试一下。如果它有用,我就用它。如果没有用,我将再次寻找另一种伟大的方法或其他指标。
我曾经问过Codersguru关于类似的事情。
我向他提出的问题是,如果我在30M TF中使用1 EMA,那么在1M TF中必须是30 EMA。
他说不是这样的。但我并不满意,也许有其他的方法,所以我在这里找到了它。但如果它没有用,对我来说也没什么...
。至少我知道结果是什么。
顺便说一下,感谢最新的RSIOMA mladen,我非常喜欢它,也感谢fxbs和Kalenzo,感谢这个伟大的指标。
谢谢。
IIN
问题是这样的。
那个关于MA的想法可能是技术分析 中最古老的想法。
我同意,像TSD这样的地方是分享想法和知识的地方。
但请不要试图以这种方式来做。
拜托,我们在这里到底想做什么?
我希望现在我说清楚了
问候
mladen
我是认真的 mladen...
我是一个新手,不是一个程序员,可能scrat的方法不完美,但也许我可以使用它。我会试试的。如果它有用,我就会使用它。如果没有用,我将再次寻找另一种伟大的方法或其他指标。
我曾经问过Codersguru关于类似的事情。
我向他提出的问题是,如果我在30M TF中使用1 EMA,那么在1M TF中必须是30 EMA。
他说不是这样的。但我并不满意,也许有其他的方法,所以我在这里找到了它。但如果它没有用,对我来说也没什么...
。至少我知道结果是什么。
顺便说一下,感谢最新的RSIOMA mladen,我非常喜欢它,也感谢fxbs和Kalenzo,感谢这个伟大的指标。
谢谢。
IIN好吧,我是正式的哑巴,我刚刚冒犯了这个线程中的每个人。 这次我说对了吗?
我很抱歉。
问题是这样的。
MA的想法可能是技术分析中最古老的想法。
我确实同意像TSD这样的地方是分享想法和知识的地方。
但请大家不要尝试这样做。
拜托,我们到底想在这里做什么?
我希望现在我已经说得很清楚了
问候
mladen有没有人知道这些MTF指数在哪里?
我已经到处寻找这些MTF版本。有没有人知道或见过它们?
谢谢你。