查看:6817回复:33
请高手帮助把优化的Ichimoku编成MT公式
ichimoku 指标在判断大势的时候,很有用处。我在使用中,对MT原来的ichimoku公式做了一下优化,使用起来更加直观明确,更符合实际操作的需要。不过,很遗憾,我对MT公式编程一窍不通。尽管努力的学习,还是一头雾水。
希望高手能把它编成MT4.0公式。
优化原则:
将指标线分别用Ema和Sma进行优化处理,同时,对个别突然的剧烈波动进行加权优化处理。
转换线Tenkan Sen : (EMA(9日内的最高价)+EMA(9日内最低价))/2
基准线Kijun Sen: (EMA(26日内的最高价)+EMA(26日内最低价))/2
星云A{SpanA} : (转换线+基准线)/2,画点状线;
星云B {SpanB} :(EMA(52日内的最高价)+EMA(52日内最低价))/2,画点状线
提前线:将原来的延迟线改为提前线,并作SMA处理。 具体如下:
首先取得3日内收盘价线的SMA值 ,然后将26周期前的SMA值,作为当前周期的提前值。其中,SMA权重设为1
当指标线下凹时,不论此时汇价是否上升,汇价必将大幅下跌;
当指标线上凹时,不论此时汇价是否下跌,汇价必将大幅上扬;
同时,汇价总是趋向接近并穿越提前线。一旦穿越成功,未来上升或下降的幅度,基本就是汇率与提前线波峰波谷之间的最大差值。
结合Stochastic指标,趋势更加明确。
[ Last edited by arthurlord on 2005-6-20 at 00:23 ]EUR.gif
发表于:2005-06-20 13:47只看该作者
2楼
转换线Tenkan Sen : (EMA(9日内的最高价)+EMA(9日内最低价))/2
是9天内的一个最高价还是把9天内high作ema处理呢?其它的类似
基准线Kijun Sen: (EMA(26日内的最高价)+EMA(26日内最低价))/2
星云A{SpanA} : (转换线+基准线)/2,画点状线;
星云B {SpanB} :(EMA(52日内的最高价)+EMA(52日内最低价))/2,画点状线
提前线:将原来的延迟线改为提前线,并作SMA处理。 具体如下:
首先取得3日内收盘价线的SMA值 ,然后将26周期前的SMA值,作为当前周期的提前值。其中,SMA权重设为1
------------------------------
这个公式我看看怎么编吧。当然上面的问题得搞清楚才能编
韬客外汇论坛
3楼
再看一图。
可惜我只会编飞狐公式,请高手把它编成MT4.0的公式.EURUSD.gif
韬客社区www.talkfx.co
4楼
Tenkan Sen : (EMA(9日最高价)+EMA(9日最低价))/2,Color8888FF;
Kijun Sen : (EMA(26日最高价)+EMA(26日最低价))/2,ColorFFFF00;
Span A : (转换+基准)/2,Color55AAFF;
Span B : (EMA(52日最高价)+EMA(52日最低价))/2,ColorCBB0CE;
Chinkou Sen改为提前线 : SMA(3日收盘价,权重为1,把26日前的该值作为今天的数值 ,colorgreen;
STICKLINE(星云A>星云B,星云A,星云B,0,1),Color55AAFF;
STICKLINE(星云A<星云B,星云A,星云B,0,1),ColorCBB0CE;
[ Last edited by arthurlord on 2005-6-20 at 22:56 ]
5楼
是把9天内high作ema处理
提前 :REF(SMA(CLOSE,3,1),26),是将3日内收盘价做SMA处理,MT中的对应的指标是MODE_SMMA;然后再将此值向前赋值,求得26日前的该值
[ Last edited by arthurlord on 2005-6-20 at 22:20 ]
发表于:2005-06-21 01:13只看该作者
6楼
不知道这个是不是你要的,应该差不多。:)
//+------------------------------------------------------------------+
//| Ichi-talkforex.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_chart_window
#property indicator_buffers 7
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 SandyBrown
#property indicator_color4 Thistle
#property indicator_color5 Lime
#property indicator_color6 SandyBrown
#property indicator_color7 Thistle
//---- input parameters
extern int Tenkan=9;
extern int Kijun=26;
extern int Senkou=52;
extern int Chinkou=26;
extern int ChinkouMA=3;
//---- buffers
double Tenkan_Buffer;
double Kijun_Buffer;
double SpanA_Buffer;
double SpanB_Buffer;
double Chinkou_Buffer;
double SpanA2_Buffer;
double SpanB2_Buffer;
//----
int a_begin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Tenkan_Buffer);
SetIndexDrawBegin(0,Tenkan-1);
SetIndexLabel(0,"Tenkan Sen");
//----
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Kijun_Buffer);
SetIndexDrawBegin(1,Kijun-1);
SetIndexLabel(1,"Kijun Sen");
//----
a_begin=Kijun; if(a_beginTenkan) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Tenkan,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Tenkan,0,MODE_EMA,PRICE_LOW,i);
Tenkan_Buffer=(high+low)/2;
i--;
}
//---- Kijun Sen
i=Bars-Kijun;
if(counted_bars>Kijun) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Kijun,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Kijun,0,MODE_EMA,PRICE_LOW,i);
Kijun_Buffer=(high+low)/2;
i--;
}
//---- Senkou Span A
i=Bars-a_begin+1;
if(counted_bars>a_begin-1) i=Bars-counted_bars-1;
while(i>=0)
{
price=(Kijun_Buffer+Tenkan_Buffer)/2;
SpanA_Buffer=price;
SpanA2_Buffer=price;
i--;
}
//---- Senkou Span B
i=Bars-Senkou;
if(counted_bars>Senkou) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Senkou,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Senkou,0,MODE_EMA,PRICE_LOW,i);
price=(high+low)/2;
SpanB_Buffer=price;
SpanB2_Buffer=price;
i--;
}
//---- Chinkou Span
i=Bars-1;
if(counted_bars>1) i=Bars-counted_bars-1;
while(i>=0)
{Chinkou_Buffer=iMA(NULL,0,ChinkouMA,0,MODE_SMMA,PRICE_CLOSE,i);
i--; }
//----
return(0);
}
//+------------------------------------------------------------------+
韬客外汇论坛
7楼
非常感谢hawkie !
另外,有2处还需要改动一下。
1。将原来的延迟线ChinkouMA向左位移26周期,改为向右位移26周期。即,应从现在的位置向右位移52周期位置;
2。 星云Span A和Span B 不做向右的位移。即,从现在的位置向左返回26个周期。
请见下图。4.jpg
韬客社区www.talkfx.co
发表于:2005-06-21 06:06只看该作者
8楼
ok,那就这样咯。不对,提出再改。
:lol
//+------------------------------------------------------------------+
//| Ichi-talkforex.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_chart_window
#property indicator_buffers 7
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 SandyBrown
#property indicator_color4 Thistle
#property indicator_color5 Lime
#property indicator_color6 SandyBrown
#property indicator_color7 Thistle
//---- input parameters
extern int Tenkan=9;
extern int Kijun=26;
extern int Senkou=52;
extern int Chinkou=26;
extern int ChinkouMA=3;
//---- buffers
double Tenkan_Buffer;
double Kijun_Buffer;
double SpanA_Buffer;
double SpanB_Buffer;
double Chinkou_Buffer;
double SpanA2_Buffer;
double SpanB2_Buffer;
//----
int a_begin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Tenkan_Buffer);
SetIndexDrawBegin(0,Tenkan-1);
SetIndexLabel(0,"Tenkan Sen");
//----
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Kijun_Buffer);
SetIndexDrawBegin(1,Kijun-1);
SetIndexLabel(1,"Kijun Sen");
//----
a_begin=Kijun; if(a_beginTenkan) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Tenkan,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Tenkan,0,MODE_EMA,PRICE_LOW,i);
Tenkan_Buffer=(high+low)/2;
i--;
}
//---- Kijun Sen
i=Bars-Kijun;
if(counted_bars>Kijun) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Kijun,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Kijun,0,MODE_EMA,PRICE_LOW,i);
Kijun_Buffer=(high+low)/2;
i--;
}
//---- Senkou Span A
i=Bars-a_begin+1;
if(counted_bars>a_begin-1) i=Bars-counted_bars-1;
while(i>=0)
{
price=(Kijun_Buffer+Tenkan_Buffer)/2;
SpanA_Buffer=price;
SpanA2_Buffer=price;
i--;
}
//---- Senkou Span B
i=Bars-Senkou;
if(counted_bars>Senkou) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Senkou,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Senkou,0,MODE_EMA,PRICE_LOW,i);
price=(high+low)/2;
SpanB_Buffer=price;
SpanB2_Buffer=price;
i--;
}
//---- Chinkou Span
i=Bars-1;
if(counted_bars>1) i=Bars-counted_bars-1;
while(i>=0)
{Chinkou_Buffer=iMA(NULL,0,ChinkouMA,0,MODE_SMMA,PRICE_CLOSE,i);
i--; }
//----
return(0);
}
//+------------------------------------------------------------------+
9楼
是的,就是这个样子。高人就是高人。
不过,下面2个还没有改过来。云彩飞到线外面去了。:P 麻烦你再辛苦一下。
double SpanA2_Buffer;
double SpanB2_Buffer;
[ Last edited by arthurlord on 2005-6-21 at 14:51 ]5.jpg
韬客社区www.talkfx.co
发表于:2005-06-21 07:15只看该作者
10楼
这回云图就不会跑到外面去了:lol
//+------------------------------------------------------------------+
//| Ichi-talkforex.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_chart_window
#property indicator_buffers 7
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 SandyBrown
#property indicator_color4 Thistle
#property indicator_color5 Lime
#property indicator_color6 SandyBrown
#property indicator_color7 Thistle
//---- input parameters
extern int Tenkan=9;
extern int Kijun=26;
extern int Senkou=52;
extern int Chinkou=26;
extern int ChinkouMA=3;
//---- buffers
double Tenkan_Buffer;
double Kijun_Buffer;
double SpanA_Buffer;
double SpanB_Buffer;
double Chinkou_Buffer;
double SpanA2_Buffer;
double SpanB2_Buffer;
//----
int a_begin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Tenkan_Buffer);
SetIndexDrawBegin(0,Tenkan-1);
SetIndexLabel(0,"Tenkan Sen");
//----
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Kijun_Buffer);
SetIndexDrawBegin(1,Kijun-1);
SetIndexLabel(1,"Kijun Sen");
//----
a_begin=Kijun; if(a_beginTenkan) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Tenkan,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Tenkan,0,MODE_EMA,PRICE_LOW,i);
Tenkan_Buffer=(high+low)/2;
i--;
}
//---- Kijun Sen
i=Bars-Kijun;
if(counted_bars>Kijun) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Kijun,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Kijun,0,MODE_EMA,PRICE_LOW,i);
Kijun_Buffer=(high+low)/2;
i--;
}
//---- Senkou Span A
i=Bars-a_begin+1;
if(counted_bars>a_begin-1) i=Bars-counted_bars-1;
while(i>=0)
{
price=(Kijun_Buffer+Tenkan_Buffer)/2;
SpanA_Buffer=price;
SpanA2_Buffer=price;
i--;
}
//---- Senkou Span B
i=Bars-Senkou;
if(counted_bars>Senkou) i=Bars-counted_bars-1;
while(i>=0)
{
high=iMA(NULL,0,Senkou,0,MODE_EMA,PRICE_HIGH,i);
low =iMA(NULL,0,Senkou,0,MODE_EMA,PRICE_LOW,i);
price=(high+low)/2;
SpanB_Buffer=price;
SpanB2_Buffer=price;
i--;
}
//---- Chinkou Span
i=Bars-1;
if(counted_bars>1) i=Bars-counted_bars-1;
while(i>=0)
{Chinkou_Buffer=iMA(NULL,0,ChinkouMA,0,MODE_SMMA,PRICE_CLOSE,i);
i--; }
//----
return(0);
}
//+------------------------------------------------------------------+
11楼
hawkie ,你真是救苦救难的活菩萨。非常感谢。
应该将版权Copyright改成hawkie,干吗总给MetaQuotes Software Corp脸上贴金。 :p
韬客社区www.talkfx.co
发表于:2005-06-22 01:05只看该作者
13楼
非常感谢高人!!!
发表于:2005-06-22 02:23只看该作者
14楼
应某朋友要求,把指标改成在附图显示。
不过附图显示有问题,把公式删了。
[ Last edited by hawkie on 2005-6-22 at 10:27 ]
发表于:2005-06-22 05:00只看该作者
15楼
继续做打手 嘿嘿
.
.
.
打下手啦talkforex-IchimokuNEW-BYhawkie.zip
遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
● 如何使用WinMTR查询平台连接流畅度
发表于:2005-09-29 07:08只看该作者
16楼
能不能弄个mt3.83的公式?
韬客社区www.talkfx.co
发表于:2006-06-02 04:05只看该作者
17楼
非常历害的一个人啊,高手,佩服之至
韬客社区www.talkfx.co
发表于:2006-07-20 08:36只看该作者
18楼
谢谢hawkie的提供,学习学习!!
hua he
发表于:2006-07-21 05:06只看该作者
19楼
hawkie是好人啊!!鼓掌!
韬客社区www.talkfx.co
发表于:2006-07-22 10:01只看该作者
20楼
太好了真是,早没发现还有这么好的东西,谢谢