基于数字滤波器的交易策略 - 页 81 1...747576777879808182838485868788...138 新评论 SIMBA 2010.01.17 12:06 #801 基础指标 Pava: 如何改变外推器的基础指标? 帕瓦。 把你想使用的基础指标贴在这里,我会为你做修改,如果是你不想贴出的 "秘密指标",只需按照以前的帖子中的建议改变代码行。 例如,如果你想做RSI的Fourier Extr,你应该在输入参数 中加入以下内容... extern int RSIPeriod = 14; 然后,改变这一行的代码。 in=0.5+iWPR(NULL,0,50,i+lb)/100.0; //改变这里的指标 对于这一行 in=0.5+iRSI(NULL, 0, RSIPeriod,0,i+lb)/100.0; //改变这里的指标 注意事项 S learntrader 2010.01.17 12:23 #802 对不起 我想通过我在这个线程中的行为向辛巴公开道歉,如果我冒犯了你,对不起....。 learntrader 2010.01.17 12:25 #803 问题 确实要做傅里叶变换rsi给我看吗?: 'in' - 全局范围内的表达不允许 C: \ Program Files \ WHC Trader 4 \ experts \ indicators \ RSI.mq4 (16, 1) 有人知道为什么吗? SIMBA 2010.01.17 12:36 #804 FFT问题 现在,在每个人都相信这是HG之前,我想指出,它不是。 见所附图片......这里有一个很大的问题,如果你盲目地相信WPR的FFT信号,你就会在必要的时候提前得到空头。 那么,这是否意味着FFT指标没有用呢?不是......如果你知道如何交易,它可以非常有用,基本上有两种方法......第一种是寻找趋势线突破的确认,在FFT的颜色变化之后,避免进入交易,直到价格(最好是收盘价)穿越趋势线......第二种方法我将在下一篇文章中解释。 谢谢 S 附加的文件: fftproblem.gif 70 kb learntrader 2010.01.17 12:46 #805 和... 请原谅我的打断,那么,FFT能不能像图片中那样轮番上阵? 重绘? 附加的文件: gbpjpyh4.jpg 266 kb SIMBA 2010.01.17 13:14 #806 FFTSolution 还有更多的方法来使用这些指标,但趋势线和我现在要解释的是使用这些工具进行交易的基础,你可以把两者结合起来,或者增加MTF确认......但是,基础是这两种方法。 第二种方法。 1-趋势过滤器。见图FTTSolution1......使用一个FFT,其基本指标周期在200到300条之间,在这种情况下,我使用250周期的RSI...谐波=1...这将是你的趋势过滤器,重绘效果可以忽略不计...所以,一旦它变成红色,你只能进行短线交易。 2-触发器进入。见图片FFTSolution2......在图表上添加第二个FFT指标,其周期为正常周期(本例中RSI=14),谐波在5和25之间(本例中我使用了25)。如果趋势过滤器发出下降趋势的信号,你也要在Trigger发出下降趋势的信号时进入。见我在图表上标记的蓝色区域。你可以通过TP退出,或者,强制性的,通过改变颜色....。在本例中,有5笔进入,其中3笔略有盈利,2笔非常好的交易....。 这也不是HG,但这是一个非常好的策略,可以安全地进行交易并获得利润。 建议。 1-不要贪心,使用趋势线,或这个方法,或两者都使用......不要预测趋势变化。总是使用基于至少H1的>200期的趋势过滤器。 2-我对较低时间段的评论......在H1以上使用它。如果你真的必须在M1、M5、M15使用它,那么只有在M15和H1的TRENDFILTERS(>200期)都在向同一方向发出信号的情况下才可以。 3-如果你非常有耐心,并等待正确的设置,就可以完成最好的进入......见第二个图表中的最后一次进入(蓝色区域)......趋势是向下的,有一个ABCD类型的回撤,回撤了之前下行的50%以上(大约80%),然后是一个触发进入。 4-高次谐波(25次)速度较快,但可以重新绘制,通常是在逆势方向,如果你在趋势方向交易,你可以使用它们作为触发器,但是,最好只使用5次谐波......你会有较少的交易,但你会捕捉到盈利的交易。 5-用Visual Tester 练习你的设置和触发器,在几个时间段和几个货币对中获得感觉。 谢谢 S 附加的文件: fftsolution1.gif 63 kb fftsolution2.gif 86 kb SIMBA 2010.01.17 13:26 #807 好的 learntrader: 我想通过我在这个线程中的行为向simba公开道歉,如果我冒犯了你,对不起....。 learntrader: 确实要做傅里叶变换rsi给我看吗: 'in' - 全局范围的表达式不允许 C: \ Program Files \ WHC Trader 4 \ experts \ indicators \ RSI.mq4 (16, 1) 有人知道为什么? learntrader: 请原谅我的打扰,那么,fft不能像图片中那样轮流使用吗? 重新绘制? Dario, 1-我接受你的歉意。 2-请看本帖所附的RSI的FFT,我修改了Leledc指标,因为它有所有的功能和特点。 3-FFT可以转弯,最重要的 问题是你使用的基础指标......FFT可以疯狂地重绘,也可以非常稳定,如果你像我在上一篇文章中解释的那样使用它,你将结合一个稳定的方向性过滤器和一个快速(容易重绘或重绘)的 "转弯器"...关键是通过结合它们,你将重绘的危险降到最低,从快速方向性入场中获益。 Leledc 感谢你对指标的修改。 谢谢 S 附加的文件: fourier_extrapolation_of_indicator_colorrsi_1.1.mq4 10 kb leledc 2010.01.17 17:01 #808 SIMBA: 达里奥。1-我接受你的歉意。 2-请看本帖所附的RSI的FFT,我修改了Leledc指标,因为它有所有的功能和口哨。 3-FFT可以转弯,最重要的问题是你使用的基础指标......FFT可以疯狂地重绘,也可以非常稳定,如果你像我在上一篇文章中解释的那样使用它,你将结合一个稳定的方向性过滤器和一个快速(容易重绘或重绘)的 "转弯器"...关键是,通过结合它们,你将重绘的危险降到最低,并从快速方向性入场中获益。 Leledc 感谢你对指标的修改。 鸣谢 S 我很高兴从你那里听到这个消息!!!! leledc 2010.01.17 17:27 #809 高斯过滤器 我有一个tradestation fucntion:我想把它转换为mql(在mt4中移植tradestation indi).下面是mql中的原始和我的函数 版本.它不能很好地工作,所以我想在这里得到一些专家的帮助。 易语言 {Gaussian Filter} Inputs: Price(NumericSeries), iptPeriod(NumericSimple), iptPoles(NumericSimple); variables: aa(0), b(0), w(0), x(0), y(0), y1(0), y2(0), y3(0), y4(0), a_1(0), a_12(0), a_13(0), a_14(0), a2(0), a3(0), a4(0), Pi(3.141592654), sqrtOf2(1.414213562), Period(2), poles(0); if (iptPeriod < 2) then Period = 2 else Period = iptPeriod; // Number of filter poles must be between 1 and 4, inclusive if iptPoles < 1 then poles = 1 else if iptPoles > 4 then poles = 4 else poles = iptPoles; // initialization - performed only for first bar if CurrentBar = 1 then begin w = 2 * Pi / Period; // omega w = 180 * w / Pi; // in degrees b = (1 - cosine(w)) / (power(sqrtOf2, 2.0/poles) - 1.0); aa = -b + squareroot(b*b + 2*b); a_1 = 1.0 - aa; a_12 = a_1 * a_1; a_13 = a_1 * a_1 * a_1; a_14 = a_12 * a_12; a2 = aa * aa; a3 = aa * aa * aa; a4 = a2 * a2; y1 = Price; y2 = y1; y3 = y2; y4 = y3; end; { Calculate your indicator value here } x = Price; if (poles = 1) then y = aa * x + a_1 * y1 else if (poles = 2) then y = a2 * x + 2 * a_1 * y1 - a_12 * y2 else if (poles = 3) then y = a3 * x + 3 * a_1 * y1 - 3 * a_12 * y2 + a_13 * y3 else if (poles = 4) then y = a4 * x + 4 * a_1 * y1 - 6 * a_12 * y2 + 4 * a_13 * y3 - a_14 * y4; y4 = y3; // delayed by four bars y3 = y2; // delayed by three bars y2 = y1; // delayed by two bars y1 = y; // delayed by one bar Gauss = y; [/php]Mql [php] double Gauss(double Price, double iptPeriod,double iptPoles){ double aa, b, w, x, y, y1, y2, y3, y4,a_1, a_12, a_13, a_14, a2, a3, a4; double Pi=3.141592654; double period=21, poles; if (iptPeriod < 2) period = 2; else period = iptPeriod; if (iptPoles < 1){ poles = 1; } else if (iptPoles > 4){ poles = 4; } else{ poles = iptPoles; } // initialization - performed only for first bar for(int i = Price; i >= 0; i--){ w = 2 * Pi / period; // omega w = 180 * w / Pi; // in degrees b = (1 - MathCos(w)) / (MathPow(MathSqrt(2.0),2.0/poles) - 1.0); aa = -b + MathSqrt(b*b + 2*b); a_1 = 1.0 - aa; a_12 = a_1 * a_1; a_13 = a_1 * a_1 * a_1; a_14 = a_12 * a_12; a2 = aa * aa; a3 = aa * aa * aa; a4 = a2 * a2; y1 = Price; y2 = y1; y3 = y2; y4 = y3; } for(i = Price; i >= 0; i--){ x = Price; y = a4 * x + 4 * a_1 * y1 - 6 * a_12 * y2 + 4 * a_13 * y3 - a_14 * y4;//we don't need y1 y2 y3 y4 } return (y); } Trading Strategies Based On Metastock to MT4 How to reduce length William Snyder 2010.01.17 18:01 #810 !!!!!!!!!! 1...747576777879808182838485868788...138 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
基础指标
如何改变外推器的基础指标?
帕瓦。
把你想使用的基础指标贴在这里,我会为你做修改,如果是你不想贴出的 "秘密指标",只需按照以前的帖子中的建议改变代码行。
例如,如果你想做RSI的Fourier Extr,你应该在输入参数 中加入以下内容...
extern int RSIPeriod = 14;
然后,改变这一行的代码。
in=0.5+iWPR(NULL,0,50,i+lb)/100.0; //改变这里的指标
对于这一行
in=0.5+iRSI(NULL, 0, RSIPeriod,0,i+lb)/100.0; //改变这里的指标
注意事项
S
对不起
我想通过我在这个线程中的行为向辛巴公开道歉,如果我冒犯了你,对不起....。
问题
确实要做傅里叶变换rsi给我看吗?: 'in' - 全局范围内的表达不允许 C: \ Program Files \ WHC Trader 4 \ experts \ indicators \ RSI.mq4 (16, 1)
有人知道为什么吗?
FFT问题
现在,在每个人都相信这是HG之前,我想指出,它不是。
见所附图片......这里有一个很大的问题,如果你盲目地相信WPR的FFT信号,你就会在必要的时候提前得到空头。
那么,这是否意味着FFT指标没有用呢?不是......如果你知道如何交易,它可以非常有用,基本上有两种方法......第一种是寻找趋势线突破的确认,在FFT的颜色变化之后,避免进入交易,直到价格(最好是收盘价)穿越趋势线......第二种方法我将在下一篇文章中解释。
谢谢
S
和...
请原谅我的打断,那么,FFT能不能像图片中那样轮番上阵? 重绘?
FFTSolution
还有更多的方法来使用这些指标,但趋势线和我现在要解释的是使用这些工具进行交易的基础,你可以把两者结合起来,或者增加MTF确认......但是,基础是这两种方法。
第二种方法。
1-趋势过滤器。见图FTTSolution1......使用一个FFT,其基本指标周期在200到300条之间,在这种情况下,我使用250周期的RSI...谐波=1...这将是你的趋势过滤器,重绘效果可以忽略不计...所以,一旦它变成红色,你只能进行短线交易。
2-触发器进入。见图片FFTSolution2......在图表上添加第二个FFT指标,其周期为正常周期(本例中RSI=14),谐波在5和25之间(本例中我使用了25)。如果趋势过滤器发出下降趋势的信号,你也要在Trigger发出下降趋势的信号时进入。见我在图表上标记的蓝色区域。你可以通过TP退出,或者,强制性的,通过改变颜色....。在本例中,有5笔进入,其中3笔略有盈利,2笔非常好的交易....。
这也不是HG,但这是一个非常好的策略,可以安全地进行交易并获得利润。
建议。
1-不要贪心,使用趋势线,或这个方法,或两者都使用......不要预测趋势变化。总是使用基于至少H1的>200期的趋势过滤器。
2-我对较低时间段的评论......在H1以上使用它。如果你真的必须在M1、M5、M15使用它,那么只有在M15和H1的TRENDFILTERS(>200期)都在向同一方向发出信号的情况下才可以。
3-如果你非常有耐心,并等待正确的设置,就可以完成最好的进入......见第二个图表中的最后一次进入(蓝色区域)......趋势是向下的,有一个ABCD类型的回撤,回撤了之前下行的50%以上(大约80%),然后是一个触发进入。
4-高次谐波(25次)速度较快,但可以重新绘制,通常是在逆势方向,如果你在趋势方向交易,你可以使用它们作为触发器,但是,最好只使用5次谐波......你会有较少的交易,但你会捕捉到盈利的交易。
5-用Visual Tester 练习你的设置和触发器,在几个时间段和几个货币对中获得感觉。
谢谢
S
好的
我想通过我在这个线程中的行为向simba公开道歉,如果我冒犯了你,对不起....。
确实要做傅里叶变换rsi给我看吗: 'in' - 全局范围的表达式不允许 C: \ Program Files \ WHC Trader 4 \ experts \ indicators \ RSI.mq4 (16, 1) 有人知道为什么?
请原谅我的打扰,那么,fft不能像图片中那样轮流使用吗? 重新绘制?
Dario,
1-我接受你的歉意。
2-请看本帖所附的RSI的FFT,我修改了Leledc指标,因为它有所有的功能和特点。
3-FFT可以转弯,最重要的 问题是你使用的基础指标......FFT可以疯狂地重绘,也可以非常稳定,如果你像我在上一篇文章中解释的那样使用它,你将结合一个稳定的方向性过滤器和一个快速(容易重绘或重绘)的 "转弯器"...关键是通过结合它们,你将重绘的危险降到最低,从快速方向性入场中获益。
Leledc
感谢你对指标的修改。
谢谢
S
达里奥。
1-我接受你的歉意。
2-请看本帖所附的RSI的FFT,我修改了Leledc指标,因为它有所有的功能和口哨。
3-FFT可以转弯,最重要的问题是你使用的基础指标......FFT可以疯狂地重绘,也可以非常稳定,如果你像我在上一篇文章中解释的那样使用它,你将结合一个稳定的方向性过滤器和一个快速(容易重绘或重绘)的 "转弯器"...关键是,通过结合它们,你将重绘的危险降到最低,并从快速方向性入场中获益。
Leledc
感谢你对指标的修改。
鸣谢
S我很高兴从你那里听到这个消息!!!!
高斯过滤器
我有一个tradestation fucntion:我想把它转换为mql(在mt4中移植tradestation indi).下面是mql中的原始和我的函数 版本.它不能很好地工作,所以我想在这里得到一些专家的帮助。
易语言
{Gaussian Filter}
Inputs: Price(NumericSeries), iptPeriod(NumericSimple), iptPoles(NumericSimple);
variables: aa(0), b(0), w(0), x(0), y(0), y1(0), y2(0), y3(0), y4(0),
a_1(0), a_12(0), a_13(0), a_14(0), a2(0), a3(0), a4(0), Pi(3.141592654),
sqrtOf2(1.414213562), Period(2), poles(0);
if (iptPeriod < 2) then
Period = 2
else
Period = iptPeriod;
// Number of filter poles must be between 1 and 4, inclusive
if iptPoles < 1 then
poles = 1
else if iptPoles > 4 then
poles = 4
else
poles = iptPoles;
// initialization - performed only for first bar
if CurrentBar = 1 then
begin
w = 2 * Pi / Period; // omega
w = 180 * w / Pi; // in degrees
b = (1 - cosine(w)) / (power(sqrtOf2, 2.0/poles) - 1.0);
aa = -b + squareroot(b*b + 2*b);
a_1 = 1.0 - aa;
a_12 = a_1 * a_1;
a_13 = a_1 * a_1 * a_1;
a_14 = a_12 * a_12;
a2 = aa * aa;
a3 = aa * aa * aa;
a4 = a2 * a2;
y1 = Price;
y2 = y1;
y3 = y2;
y4 = y3;
end;
{ Calculate your indicator value here }
x = Price;
if (poles = 1) then
y = aa * x + a_1 * y1
else if (poles = 2) then
y = a2 * x + 2 * a_1 * y1 - a_12 * y2
else if (poles = 3) then
y = a3 * x + 3 * a_1 * y1 - 3 * a_12 * y2 + a_13 * y3
else if (poles = 4) then
y = a4 * x + 4 * a_1 * y1 - 6 * a_12 * y2 + 4 * a_13 * y3 - a_14 * y4;
y4 = y3; // delayed by four bars
y3 = y2; // delayed by three bars
y2 = y1; // delayed by two bars
y1 = y; // delayed by one bar
Gauss = y;
[/php]Mql
[php]
double Gauss(double Price, double iptPeriod,double iptPoles){
double aa, b, w, x, y, y1, y2, y3, y4,a_1, a_12, a_13, a_14, a2, a3, a4;
double Pi=3.141592654;
double period=21, poles;
if (iptPeriod < 2)
period = 2;
else
period = iptPeriod;
if (iptPoles < 1){
poles = 1;
}
else if (iptPoles > 4){
poles = 4;
}
else{
poles = iptPoles;
}
// initialization - performed only for first bar
for(int i = Price; i >= 0; i--){
w = 2 * Pi / period; // omega
w = 180 * w / Pi; // in degrees
b = (1 - MathCos(w)) / (MathPow(MathSqrt(2.0),2.0/poles) - 1.0);
aa = -b + MathSqrt(b*b + 2*b);
a_1 = 1.0 - aa;
a_12 = a_1 * a_1;
a_13 = a_1 * a_1 * a_1;
a_14 = a_12 * a_12;
a2 = aa * aa;
a3 = aa * aa * aa;
a4 = a2 * a2;
y1 = Price;
y2 = y1;
y3 = y2;
y4 = y3;
}
for(i = Price; i >= 0; i--){
x = Price;
y = a4 * x + 4 * a_1 * y1 - 6 * a_12 * y2 + 4 * a_13 * y3 - a_14 * y4;//we don't need y1 y2 y3 y4
}
return (y);
}
!!!!!!!!!!