论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:4240回复:5
夜开
注册时间2006-02-17
[MT4指标]关于Stochastic Oscillator指标详细解释...求转飞狐公式
楼主发表于:2006-04-22 05:37只看该作者倒序浏览
1楼 电梯直达
电梯直达
Name: Stochastic Oscillator, Stochastic Author: MetaQuotes Rating: Not rated Downloaded: 223 times Download: Stochastic.mq4 (3.8 Kb) View Description: The Stochastic Oscillator Technical Indicator compares where a security’s price closed relative to its price range over a given time period. The Stochastic Oscillator is displayed as two lines. The main line is called %K. The second line, called %D, is a Moving Average of %K. The %K line is usually displayed as a solid line and the %D line is usually displayed as a dotted line. There are several ways to interpret a Stochastic Oscillator. Three popular methods include: Buy when the Oscillator (either %K or %D) falls below a specific level (e.g., 20) and then rises above that level. Sell when the Oscillator rises above a specific level (e.g., 80) and then falls below that level; Buy when the %K line rises above the %D line and sell when the %K line falls below the %D line; Look for divergences. For instance: where prices are making a series of new highs and the Stochastic Oscillator is failing to surpass its previous highs. Calculation The Stochastic Oscillator has three variables: %K periods (Pk). This is the number of time periods used in %K calculation. By default is 5; %K Slowing Periods (Sk). This value controls the internal smoothing of %K. A value of 1 is considered a fast stochastic; a value of 3 is considered a slow stochastic. By default is 3; %D periods (Pd). This is the number of time periods used when calculating a moving average of %K. By default is 3; The formula for %K is: %K = 100*SUM (CLOSE - MIN (LOW, Pk), Sk) / SUM (MAX (HIGH, Pk) - MIN (LOW, Pk)), Sk) Where: CLOSE — is today’s closing price; MIN (LOW, Pk) — is the lowest low in Pk periods; MAX (HIGH, Pk) — is the highest high in Pk periods. SUM (CLOSE - MIN (LOW, Pk), Sk) — amount composed CLOSE - MIN (LOW, Pk) for period Sk; SUM (MAX (HIGH, Pk) - MIN (LOW, Pk)), Sk) — amount composed HIGH (Pk)) - MIN (LOW, Pk) for period Sk. The %D moving average is calculated according to the formula: %D = SMA (%K, Pd) Where: Pd — is the smoothing period for %K; SMA — is the Simple Moving Average 以上E文来自于MT4的官方网站,我根据上面的公式导入飞狐,出现调用参数不符的错误,我简单的调整了一下,发现有个括号出现了问题,得出以下的公式 K:SUM(CLOSE-MIN(LOW, Pk),Sk)/SUM(MAX(HIGH, Pk)-MIN(LOW,Pk),Sk); D:SMA(K,Pd,1) 结果显示出的指标与MT4完全不一样!,求高手指点 Stochastic Oscillator指标 原码 #property copyright "Copyright ?2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 100 #property indicator_buffers 2 #property indicator_color1 LightSeaGreen #property indicator_color2 Red //---- input parameters extern int KPeriod=5; extern int DPeriod=3; extern int Slowing=3; //---- buffers double MainBuffer; double SignalBuffer; double HighesBuffer; double LowesBuffer; //---- int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(4); SetIndexBuffer(2, HighesBuffer); SetIndexBuffer(3, LowesBuffer); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, MainBuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, SignalBuffer); //---- name for DataWindow and indicator subwindow label short_name="Sto("+KPeriod+","+DPeriod+","+Slowing+")"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); SetIndexLabel(1,"Signal"); //---- draw_begin1=KPeriod+Slowing; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic oscillator | //+------------------------------------------------------------------+ int start() { int i,k; int counted_bars=IndicatorCounted(); double price; //---- if(Bars<=draw_begin2) return(0); //---- initial zero if(counted_bars<1) { for(i=1;i<=draw_begin1;i++) MainBuffer[Bars-i]=0; for(i=1;i<=draw_begin2;i++) SignalBuffer[Bars-i]=0; } //---- minimums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double min=1000000; k=i+KPeriod-1; while(k>=i) { price=Low[k]; if(min>price) min=price; k--; } LowesBuffer=min; i--; } //---- maximums counting i=Bars-KPeriod; if(counted_bars>KPeriod) i=Bars-counted_bars-1; while(i>=0) { double max=-1000000; k=i+KPeriod-1; while(k>=i) { price=High[k]; if(maxdraw_begin1) i=Bars-counted_bars-1; while(i>=0) { double sumlow=0.0; double sumhigh=0.0; for(k=(i+Slowing-1);k>=i;k--) { sumlow+=Close[k]-LowesBuffer[k]; sumhigh+=HighesBuffer[k]-LowesBuffer[k]; } if(sumhigh==0.0) MainBuffer=100.0; else MainBuffer=sumlow/sumhigh*100; i--; } //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; //---- signal line is simple movimg average for(i=0; i
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
jxq168
注册时间2004-07-28
发表于:2006-04-25 02:29只看该作者
2楼
应该是这样吧: RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:MA(RSV,P1); D:MA(K,P2); 参数:N=5,P1=P2=3
夜开
注册时间2006-02-17
楼主发表于:2006-04-26 07:47只看该作者
3楼
原帖由 jxq168 于 2006-4-25 10:29 发表 应该是这样吧: RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:MA(RSV,P1); D:MA(K,P2); 参数:N=5,P1=P2=3
你这个是KDJ! 明显不一样
jxq168
注册时间2004-07-28
发表于:2006-04-26 07:55只看该作者
4楼
没听说kdj就是Stochastic Oscillator吗? :))
夜开
注册时间2006-02-17
楼主发表于:2006-04-26 19:05只看该作者
5楼
原帖由 jxq168 于 2006-4-26 15:55 发表 没听说kdj就是Stochastic Oscillator吗? :))
道听胡说! 你把外汇指标带进飞狐看一看就知道了!根本是两个指标! 这点研究精神还是要有地!
山水蒙
注册时间2006-03-27
发表于:2006-04-28 04:05只看该作者
6楼
KD和Stochastic Oscillator是一回事,说KDJ等同于Stochastic Oscillator其实也无所谓,虽然多了个J线,但至少原理是一样的。不过我还是偏好SlowKD.

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]