论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
前往
共 34 条
查看:8357回复:33
黑狼
注册时间2005-03-28
HAWKIE请进
楼主发表于:2005-06-21 13:42只看该作者倒序浏览
1楼 电梯直达
电梯直达
请问您能把这个修改过的KDJ指标编成MT4适用的吗?这个主要是KDJ指标加了一个多天平均线,又把J作了一下2天的简单平均 DXQS巧手 {短线巧手} {P1-13 N-9 M1-3 M2-3} AA:=LLV(LOW,36); BB:=HHV(HIGH,30); DD:=EMA((CLOSE-AA)/(BB-AA)*4,4) *25 ; PP:=SMA(DD,P1,1); 巧手:PP,COLORRED,LINETHICK2 ; RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,1); D:SMA(K,M2,1); J:MA(( 3*K-2*D),2); 天:105; 界:50; 预备:18; 地:0; 警戒: 87.5,COLORGRAY; partline(巧手,巧手>ref(巧手,1),rgb(255,0,0),巧手ref(j,1),rgb(255,0,255),j
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
hawkie
注册时间2004-06-21
发表于:2005-06-22 01:59只看该作者
2楼
不知道编对没有。红色的是巧手线。 //+------------------------------------------------------------------+ //| TALKFOREX-DXQS.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Silver #property indicator_color2 Yellow #property indicator_color3 Magenta #property indicator_color4 Red //---- input parameters extern int P=13; extern int KPeriod=9; extern int DPeriod=3; extern int JPeriod=3; double ind_buffer1; double ind_buffer2; double ind_buffer3; double ind_buffer4; double ind_buffer5; double HighesBuffer; double LowesBuffer; int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(7); SetIndexBuffer(0, ind_buffer2); SetIndexBuffer(1, ind_buffer3); SetIndexBuffer(2, ind_buffer4); SetIndexBuffer(3, ind_buffer1); SetIndexBuffer(4, ind_buffer5); SetIndexBuffer(5, HighesBuffer); SetIndexBuffer(6, LowesBuffer); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, ind_buffer2); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, ind_buffer3); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2, ind_buffer4); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3, ind_buffer5); //---- name for DataWindow and indicator subwindow label IndicatorShortName("DXQS("+","+P+","+KPeriod+","+DPeriod+","+JPeriod+")"); SetIndexLabel(0,"K"); SetIndexLabel(1,"D"); SetIndexLabel(2,"J"); SetIndexLabel(3,"QS"); //---- draw_begin1=KPeriod+JPeriod; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); SetIndexDrawBegin(2,draw_begin2); SetIndexDrawBegin(3,P); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int start() { int i,k; int counted_bars=IndicatorCounted(); double price; double AA,BB,DD,Buffer; //---- if(Bars<=draw_begin2) return(0); //---- initial zero if(counted_bars<1) { for(i=1;i<=draw_begin1;i++) ind_buffer1[Bars-i]=0; for(i=1;i<=draw_begin2;i++) ind_buffer2[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+JPeriod-1);k>=i;k--) { sumlow+=Close[k]-LowesBuffer[k]; sumhigh+=HighesBuffer[k]-LowesBuffer[k]; } if(sumhigh==0.0) ind_buffer1=100.0; else ind_buffer1=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=0) { AA=High[Highest(NULL,0,MODE_HIGH,30,i)]; BB=Low[Lowest(NULL,0,MODE_LOW,36,i)]; Buffer=(Close-AA)/(BB-AA)*4; DD=iMAOnArray(Buffer,0,4,0,MODE_EMA,0)*25; ind_buffer5=iMAOnArray(DD,0,P,0,MODE_SMMA,0); i--; } //---- return(0); } //+------------------------------------------------------------------+
黑狼
注册时间2005-03-28
楼主发表于:2005-06-22 02:13只看该作者
3楼
太好了真没想到这么快就编好了, 我这就试试 谢谢.
黑狼
注册时间2005-03-28
楼主发表于:2005-06-22 02:33只看该作者
4楼
多谢HAWKIE,第一个图是编过后的指标图,K。D。J三个值都对,总是感觉巧手线有些不对,第二个图中的巧手线是较平缓的,请您再费心看看好吗?Image00018.gifImage00018.gifImage00019.gifImage00019.gif
个性签名

韬客社区www.talkfx.co

黑狼
注册时间2005-03-28
楼主发表于:2005-06-22 02:35只看该作者
5楼
上面第二个图看不清再发一个746_eeNMWuHaAdnD.jpg746_eeNMWuHaAdnD.jpg
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
黑狼
注册时间2005-03-28
楼主发表于:2005-06-22 02:36只看该作者
6楼
让您费心了。多谢
hawkie
注册时间2004-06-21
发表于:2005-06-22 07:09只看该作者
7楼
正在查问题,不过问题基本搞清楚,还得等一下
黑狼
注册时间2005-03-28
楼主发表于:2005-06-23 01:09只看该作者
8楼
多谢HAWKIE。
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
hawkie
注册时间2004-06-21
发表于:2005-06-23 09:13只看该作者
9楼
这个还要等一下,metatrader公式里面有数组个数限制,现在想办法怎么绕过去。^_^
黑狼
注册时间2005-03-28
黑狼
注册时间2005-03-28
楼主发表于:2005-07-09 10:32只看该作者
11楼
等待中
个性签名

韬客社区www.talkfx.co

shwlm
注册时间2004-11-19
发表于:2005-07-09 16:58只看该作者
12楼
请问HAWKIE能否给俺也写个MT3用的公式?
Zukunft
注册时间2005-05-12
发表于:2005-07-09 17:33只看该作者
13楼
mt3和mt4的变成,包括指标和EA(expert),有什么程序基础上手比较容易? 还有Hawkie,你对mt3的EA转成MT4的这方面熟悉么?是否有办法编一个mt3 to mt4的转换器,谢谢。
黑狼
注册时间2005-03-28
wen789
注册时间2005-04-24
发表于:2005-07-24 00:07只看该作者
15楼
个性签名

韬客社区www.talkfx.co

hawkie
注册时间2004-06-21
发表于:2005-07-24 04:20只看该作者
16楼
原帖由 shwlm 于 2005-7-10 00:58 发表 请问HAWKIE能否给俺也写个MT3用的公式?
mt3的语言和4相差较大,何况metaquotes已经开发4,而停止3.83的更新了,暂时就不编了。 更主要的是,对3的语言不太熟。:$ 平时要用的话,3和4都开一下吧
hawkie
注册时间2004-06-21
发表于:2005-07-24 04:23只看该作者
17楼
原帖由 Zukunft 于 2005-7-10 01:33 发表 mt3和mt4的变成,包括指标和EA(expert),有什么程序基础上手比较容易? 还有Hawkie,你对mt3的EA转成MT4的这方面熟悉么?是否有办法编一个mt3 to mt4的转换器,谢谢。
4其实如果对于c语言比较熟悉的话,上手很快。3似乎更类似一点pascal一类的。 转换器要做的话,恐怕也只能metaquotes公司自己做了。 对expert转成mt4上面,没有怎么做过。不过只要你能够在mt4上面编程,那么转换过去 难度应该不大。
hawkie
注册时间2004-06-21
发表于:2005-07-24 04:24只看该作者
18楼
原帖由 黑狼 于 2005-7-18 16:33 发表 HAWKIE兄在吗?
明天把公式传上来。这一阵有点事情,所以耽误下来。实在抱歉
hawkie
注册时间2004-06-21
发表于:2005-07-25 00:00只看该作者
19楼
公式算法在最上面。 由于mt对于公式变量有数量限制,所以公式需要分成两个部分,或许优化后可以归到一个公式中, 不过暂时就先这样。 下面是公式第一部分。注意,这个公式在mt中保存的名字必须为DXQS-QS,若为其他名字,调用时 会出错。 //+------------------------------------------------------------------+ //| DXQS-QS.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Silver extern int P=13; extern int QSHigh=30; extern int QSLow=36; double AA; double BB; double CC; double DD; double EE; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(5); SetIndexBuffer(0, EE); SetIndexBuffer(1, AA); SetIndexBuffer(2, BB); SetIndexBuffer(3, CC); SetIndexBuffer(4, DD); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, EE); //---- name for DataWindow and indicator subwindow label IndicatorShortName("DXQS-QS("+","+P+","+QSHigh+","+QSLow+")"); SetIndexLabel(0,"QS"); //---- SetIndexDrawBegin(0,MathMax(QSLow,QSHigh)); return(0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i,limit; //---- limit=Bars-MathMax(QSLow,QSHigh); for(i=0;i
hawkie
注册时间2004-06-21
发表于:2005-07-25 00:03只看该作者
20楼
现在是公式第二部分。mt中需要显示DXQS时,直接调用这个公式的保存名,即可 使用DXQS。 //+------------------------------------------------------------------+ //| DXQS.mq4 | //| Copyright ?2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright ?2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Silver #property indicator_color2 Yellow #property indicator_color3 Magenta //---- input parameters extern int KPeriod=9; extern int DPeriod=3; extern int JPeriod=3; extern int P=13; extern int QSHigh=30; extern int QSLow=36; double ind_buffer1; double ind_buffer2; double ind_buffer3; double ind_buffer4; double HighesBuffer; double LowesBuffer; double QS; int draw_begin1=0; int draw_begin2=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- 2 additional buffers are used for counting. IndicatorBuffers(7); SetIndexBuffer(0, ind_buffer3); SetIndexBuffer(1, ind_buffer4); SetIndexBuffer(2, QS); SetIndexBuffer(3, ind_buffer1); SetIndexBuffer(4, ind_buffer2); SetIndexBuffer(5, HighesBuffer); SetIndexBuffer(6, LowesBuffer); //---- indicator lines SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, ind_buffer3); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, ind_buffer4); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2, QS); //---- name for DataWindow and indicator subwindow label IndicatorShortName("DXQS("+KPeriod+","+DPeriod+","+JPeriod+","+P+","+QSHigh+","+QSLow+")"); SetIndexLabel(0,"D"); SetIndexLabel(1,"J"); SetIndexLabel(2,"QS"); //---- draw_begin1=KPeriod+JPeriod; draw_begin2=draw_begin1+DPeriod; SetIndexDrawBegin(0,draw_begin1); SetIndexDrawBegin(1,draw_begin2); SetIndexDrawBegin(0,MathMax(QSLow,QSHigh)); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ 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++) ind_buffer1[Bars-i]=0; for(i=1;i<=draw_begin2;i++) ind_buffer2[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+JPeriod-1);k>=i;k--) { sumlow+=Close[k]-LowesBuffer[k]; sumhigh+=HighesBuffer[k]-LowesBuffer[k]; } if(sumhigh==0.0) ind_buffer1=100.0; else ind_buffer1=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
  • 1
  • 2
前往
共 34 条

本站免责声明:

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

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

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

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

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

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