交易危机

 找回密码
 快捷注册(禁q号)

QQ登录

只需一步,快速开始

搜索
广告位
查看: 20143|回复: 8
打印 上一主题 下一主题

[其他] 60日均线通道指标半成品(frlin2003)

  [复制链接]

2128

主题

6万

积分

157

精华

大型投行

金钱
61577 美元
权重
640
跳转到指定楼层
楼主
发表于 2014-9-23 19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
欢迎优化!
文件存放位置不解释。关于程序问题不解释。

  1. //根据某种条件,将 上行/震荡/下行 用不同的颜色分割开
  2. //编译者:平衡;[url=www.fx3Q.com]www.fx3Q.com[/url] 众汇论坛
  3. #property indicator_buffers 7
  4. #property indicator_color1 Red
  5. #property indicator_color2 Blue
  6. #property indicator_color3 Green
  7. #property indicator_color4 Blue
  8. #property indicator_color5 Red
  9. #property indicator_color6 Blue
  10. #property indicator_color7 Green

  11. #property indicator_chart_window

  12. extern int 平均振幅周期=60;
  13. int 均线周期=60;

  14. double 上行标示缓冲区[];
  15. double 震荡标示缓冲区[];
  16. double 下行标示缓冲区[];

  17. /*
  18. int 符号代码_上行=225;
  19. int 符号代码_震荡=224;
  20. int 符号代码_下行=226;
  21. */

  22. int 符号代码_上行=159;
  23. int 符号代码_震荡=159;
  24. int 符号代码_下行=159;

  25. double 上轨缓冲区[];
  26. double 上中缓冲区[];
  27. double 下轨缓冲区[];
  28. double 下中缓冲区[];

  29. int init()
  30. {
  31. //---- indicators
  32.    IndicatorBuffers(7);
  33. //----
  34.   
  35.    SetIndexStyle(0,DRAW_LINE,EMPTY,2);
  36.    SetIndexBuffer(0,上轨缓冲区);
  37.    SetIndexDrawBegin(0,均线周期);

  38.    SetIndexStyle(1,DRAW_LINE,EMPTY,2);
  39.    SetIndexBuffer(1,上中缓冲区);
  40.    SetIndexDrawBegin(1,均线周期);
  41.    
  42.    SetIndexStyle(2,DRAW_LINE,EMPTY,2);
  43.    SetIndexBuffer(2,下轨缓冲区);
  44.    SetIndexDrawBegin(2,均线周期);
  45.    
  46.    SetIndexStyle(3,DRAW_LINE,EMPTY,2);
  47.    SetIndexBuffer(3,下中缓冲区);
  48.    SetIndexDrawBegin(3,均线周期);

  49.    SetIndexStyle(4,DRAW_ARROW,0,0);
  50.    SetIndexArrow(4,符号代码_上行);
  51.    SetIndexBuffer(4,上行标示缓冲区);
  52.    SetIndexEmptyValue(4,0.0);

  53.    SetIndexStyle(5,DRAW_ARROW,0,0);
  54.    SetIndexArrow(5,符号代码_震荡);
  55.    SetIndexBuffer(5,震荡标示缓冲区);
  56.    SetIndexEmptyValue(5,0.0);
  57.    
  58.    SetIndexStyle(6,DRAW_ARROW,0,0);
  59.    SetIndexArrow(6,符号代码_下行);
  60.    SetIndexBuffer(6,下行标示缓冲区);
  61.    SetIndexEmptyValue(6,0.0);

  62.    return(0);
  63. }

  64. int deinit()
  65. {
  66. //----
  67.    
  68. //----
  69.    return(0);
  70. }

  71. int start()
  72. {
  73.    double 振幅之和;
  74.    double 平均振幅[];
  75.    double 旧Slope[];
  76.    double 新Slope[];
  77.    double 轨道宽度;
  78.    double 均线值[];。

  79.    
  80.    ArrayResize(平均振幅,Bars);   //无法使用如下语句:平均振幅[Bars],中括号内不可以放入变量,只能使用函数在声明后重新设定数组大小
  81.    ArrayResize(旧Slope,Bars);    //会导致程序运行较慢?
  82.    ArrayResize(新Slope,Bars);
  83.    ArrayResize(均线值,Bars);
  84.    
  85.    int i,j,limit,counted_bars=IndicatorCounted();
  86.    if(counted_bars>0)
  87.       counted_bars--;
  88.    limit=Bars;//-counted_bars;
  89.    
  90. //----
  91.    if(Bars<=均线周期) return(0);    //一般碰不到这情况,可删除

  92. //首次加载指标时,将最久远的60个无法得出数据的柱值清零,有必要加这行吗?也许可以忽略删除
  93.    if(counted_bars<1){
  94.       for(i=1;i<=均线周期;i++)
  95.       {
  96.          新Slope[Bars-i]=EMPTY_VALUE;
  97.       }
  98.    }

  99. //计算平均振幅
  100.    for(i=0; i<limit; i++){
  101.       振幅之和=0.0;
  102.       for(j=i;j<i+平均振幅周期;j++){
  103.          振幅之和+=High[j]-Low[j];
  104.       }
  105.       平均振幅[i]=振幅之和/平均振幅周期;  //计算10个k的平均高低价差
  106.       //平均振幅[i]=平均振幅[i]/0.0001;     //换算成"点"
  107.    }

  108. //计算旧Slope 和 新Slope
  109.    for(i=0; i<limit; i++)
  110.    {
  111.       均线值[i]=iMA(NULL,0,均线周期,0,0,0,i);
  112.       旧Slope[i]=(iMA(NULL,0,均线周期,0,0,0,i)-iMA(NULL,0,均线周期,0,0,0,i+1))/0.0001;    //60个周期内,平均每个k的移动距离---换算成"点"
  113.                                                                                           //不管平台的Point是0.0001还是0.00001,使用0.0001代表按思维小数来算
  114.       新Slope[i]=旧Slope[i]/(平均振幅[i]/0.0001)*10;      //新slope=旧slope/振幅 //10为凑数     //(平均振幅[i]/0.0001)=换算成"点"
  115.       //暂时没有乘/除 以系数
  116.    }

  117. //反向循环,从过去算到现在

  118. //7种可能性
  119. /*
  120. 只上行
  121. 1界线-----------
  122. 上行(之前从1上面下来,之前状态为上行)/震荡(之前从0.2上来,之前状态为震荡)
  123. 0.2界线---------
  124. 只震荡
  125. -0.2界线--------
  126. 下行/震荡
  127. -1界线----------
  128. 只下行
  129. */

  130.    //Comment(DoubleToStr(新Slope[10018],10));     //实测:Bars=10078,limit=10078    新Slope[10018]=6518.365错数   新Slope[10017]=正常
  131.    //Comment(DoubleToStr(新Slope[limit-1-均线周期],10));

  132.    
  133.    int 行情标示 = -2; //1为上行;0为震荡;-1为下行
  134.    int 判断启动开关 = 0;//0为关,1为开
  135.    
  136.    int 上行界 = 1;
  137.    double 上行转震荡界 = 0.2;
  138.    int 下行界 = -1;
  139.    double 下行转震荡界 = -0.2;
  140.    
  141.    for(i=limit-1-均线周期; i>=0; i--)
  142.    {      
  143.    //计算轨道宽度
  144.       轨道宽度=平均振幅[i]*4;

  145.       if(新Slope[i]>=1){
  146.          判断启动开关=1;      //从第一个上行开始启动
  147.       }
  148.       if(判断启动开关==0) continue;
  149.       
  150.       if(新Slope[i]>=上行界){
  151.          上行标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);      //箭头一律画在-3的位置
  152.          行情标示=1;
  153.          上轨缓冲区[i]=均线值[i]+轨道宽度;
  154.          上中缓冲区[i]=均线值[i]+轨道宽度/2;

  155.          continue;
  156.       }
  157.       else if (新Slope[i]<上行界 && 新Slope[i]>上行转震荡界 && 行情标示==1){
  158.          上行标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  159.          上轨缓冲区[i]=均线值[i]+轨道宽度;
  160.          上中缓冲区[i]=均线值[i]+轨道宽度/2;
  161.          continue;
  162.       }
  163.       else if (新Slope[i]<上行界 && 新Slope[i]>上行转震荡界 && 行情标示==0){
  164.          震荡标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  165.          上中缓冲区[i]=均线值[i]+轨道宽度/2;
  166.          下中缓冲区[i]=均线值[i]-轨道宽度/2;
  167.          continue;
  168.       }
  169.       else if (新Slope[i]<=上行转震荡界 && 新Slope[i]>=下行转震荡界){
  170.          震荡标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  171.          上中缓冲区[i]=均线值[i]+轨道宽度/2;
  172.          下中缓冲区[i]=均线值[i]-轨道宽度/2;
  173.          行情标示=0;
  174.          continue;
  175.       }
  176.       else if (新Slope[i]>下行界 && 新Slope[i]<下行转震荡界 && 行情标示==0){
  177.          震荡标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  178.          上中缓冲区[i]=均线值[i]+轨道宽度/2;
  179.          下中缓冲区[i]=均线值[i]-轨道宽度/2;
  180.          continue;
  181.       }
  182.       else if (新Slope[i]>下行界 && 新Slope[i]<下行转震荡界 && 行情标示==-1){
  183.          下行标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  184.          下轨缓冲区[i]=均线值[i]-轨道宽度;
  185.          下中缓冲区[i]=均线值[i]-轨道宽度/2;
  186.          continue;
  187.       }
  188.       else if(新Slope[i]<=下行界){
  189.          下行标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  190.          行情标示=-1;
  191.          下轨缓冲区[i]=均线值[i]-轨道宽度;
  192.          下中缓冲区[i]=均线值[i]-轨道宽度/2;
  193.          continue;
  194.       }

  195. //两种大幅度情况:从 X<-0.2的下行,直接进入X>0.2的震荡
  196.       else if (新Slope[i]<上行界 && 新Slope[i]>上行转震荡界 && 行情标示==-1){
  197.          震荡标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  198.          行情标示=0;
  199.          上中缓冲区[i]=均线值[i]+轨道宽度/2;
  200.          下中缓冲区[i]=均线值[i]-轨道宽度/2;
  201.          continue;
  202.       }
  203.       else if (新Slope[i]>下行界 && 新Slope[i]<下行转震荡界 && 行情标示==1){
  204.          震荡标示缓冲区[i]=iMA(NULL,0,均线周期,0,0,0,i);
  205.          行情标示=0;
  206.          上中缓冲区[i]=均线值[i]+轨道宽度/2;
  207.          下中缓冲区[i]=均线值[i]-轨道宽度/2;
  208.          continue;
  209.       }

  210.    }
  211.    return(0);
  212.   }

复制代码



frlin2003通道.zip

20.03 KB, 下载次数: 234, 下载积分: 金钱 -8

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏12 转播转播 分享分享 分享淘帖 支持支持 保留保留

2128

主题

6万

积分

157

精华

大型投行

金钱
61577 美元
权重
640
沙发
 楼主| 发表于 2014-9-23 19:30 | 只看该作者
本帖最后由 frlin2003 于 2014-9-23 20:01 编辑

          xxx

2128

主题

6万

积分

157

精华

大型投行

金钱
61577 美元
权重
640
板凳
 楼主| 发表于 2014-9-23 19:34 | 只看该作者

29

主题

1223

积分

1

精华

初级操盘手

金钱
1223 美元
权重
14
地板
发表于 2014-9-23 19:40 | 只看该作者
比布林好用多了

点评

已搞定  发表于 2014-9-23 20:03

39

主题

4001

积分

0

精华

高级操盘手

金钱
4001 美元
权重
5
5
发表于 2014-9-23 19:41 | 只看该作者
围观高技术产品

2128

主题

6万

积分

157

精华

大型投行

金钱
61577 美元
权重
640
6
 楼主| 发表于 2014-9-23 19:53 | 只看该作者

设置  回帖可见咋整?

34

主题

1615

积分

1

精华

初级操盘手

金钱
1615 美元
权重
34
7
发表于 2014-9-23 20:07 | 只看该作者
好点高端的感觉 看编码
稳定亏损,持续爆仓

2128

主题

6万

积分

157

精华

大型投行

金钱
61577 美元
权重
640
8
 楼主| 发表于 2014-9-23 20:11 | 只看该作者
长江索罗 发表于 2014-9-23 20:07
好点高端的感觉 看编码

草稿你不是见过{:soso_e117:}

52

主题

4209

积分

0

精华

高级操盘手

金钱
4209 美元
权重
108
9
发表于 2014-9-23 20:12 | 只看该作者
学习。。。。
当你刻意地追求时,它就像蝴蝶一样振翅飞远;当你专心致志之时,意外的收获已悄悄来到你的身边!
回复

使用道具 举报

2128

主题

6万

积分

157

精华

大型投行

金钱
61577 美元
权重
640
10
 楼主| 发表于 2014-9-23 20:13 | 只看该作者
长江索罗 发表于 2014-9-23 20:07
好点高端的感觉 看编码

隐藏帖子的内容,

[+hide] 放在要隐藏的内容的前面(防止回帖被隐藏,hide前面加“+”)
[+/hide]放在要隐藏的内容的后面


神奇般的实现了隐藏,日

52

主题

4209

积分

0

精华

高级操盘手

金钱
4209 美元
权重
108
11
发表于 2014-9-23 20:13 | 只看该作者
有成品的嘛。。看不懂{:soso_e127:}
当你刻意地追求时,它就像蝴蝶一样振翅飞远;当你专心致志之时,意外的收获已悄悄来到你的身边!

1

主题

489

积分

0

精华

见习操盘手

金钱
489 美元
权重
0
12
发表于 2014-9-23 20:37 | 只看该作者
知道F大发的是好东西,估计还要谷歌下怎么用。。。

8

主题

2632

积分

0

精华

中级操盘手

金钱
2632 美元
权重
0
13
发表于 2014-9-23 20:43 | 只看该作者
支持大爷..
回复

使用道具 举报

2

主题

5210

积分

0

精华

高级操盘手

金钱
5210 美元
权重
55
14
发表于 2014-9-23 20:52 | 只看该作者
这么好的东西来看看

90

主题

2191

积分

8

精华

中级操盘手

金钱
2191 美元
权重
203
15
发表于 2014-9-23 20:56 | 只看该作者
我X,敢不敢简单点,看的脑袋就大!

{:soso_e136:}
进场理由是什么?止损明确么?

20

主题

1530

积分

1

精华

初级操盘手

金钱
1530 美元
权重
20
16
发表于 2014-9-23 21:07 | 只看该作者
看不懂 支持大爷

352

主题

7816

积分

3

精华

高级操盘手

金钱
7816 美元
权重
224
17
发表于 2014-9-23 21:13 | 只看该作者
F大爷的精品又出现了

6

主题

1942

积分

0

精华

初级操盘手

金钱
1942 美元
权重
16
18
发表于 2014-9-23 21:15 | 只看该作者
回复

使用道具 举报

13

主题

5455

积分

5

精华

高级操盘手

金钱
5455 美元
权重
101
19
发表于 2014-9-23 21:16 | 只看该作者
编程白痴来支持大爷!{:soso_e113:}

39

主题

4001

积分

0

精华

高级操盘手

金钱
4001 美元
权重
5
20
发表于 2014-9-23 22:17 | 只看该作者
F大,编译出现问题啊,怎么解决?
您需要登录后才可以回帖 登录 | 快捷注册(禁q号)

本版积分规则

QQ|黄金吧|黄金论坛|手机版|指标下载|非农|目录|交易危机

版权所有: ©2014-2021 fx3q.com Powered by Discuz! X3
皖ICP备: 2024050410号-2

风险提示:杠杆风险高,交易要谨慎 声明:坛友发言和回复均为个人观点,不代表论坛立场。
若有侵权请联系fx3q@qq.com删除

快速回复 返回顶部 返回列表