25评论

1收藏

通道加KD组合的物件箭头信号

avatar kikaku | 9763 人阅读 | 25 人评论 | 2015-01-12

  1. //[i] StochasticOnChart ------ 通道加KD组合的物件箭头信号

  2. #property indicator_chart_window
  3. #property indicator_buffers 4
  4. #property indicator_color1 Yellow
  5. #property indicator_width1 2
  6. #property indicator_color2 Yellow
  7. #property indicator_width2 1
  8. #property indicator_color3 Yellow
  9. #property indicator_width3 1
  10. #property indicator_color4 Yellow
  11. #property indicator_width4 1

  12. #import  "shell32.dll"           //Connect a dll (provided with Windows)            
  13.   int ShellExecuteA(int hwnd, string Operation, string File, string Parameters, string Directory, int ShowCmd);
  14. #import "user32.dll"
  15.   int MessageBoxA(int hWnd , string lpText, string lpCaption, int uType);
  16. //------------------------------------------------------------------------------------------------------

  17. extern int K周期   = 5;
  18. extern int D周期   = 3;
  19. extern int 慢周期  = 3;
  20. extern int MA      = 50;
  21. extern int Scale   = 100;
  22. extern int 使用通道显示   = 1;
  23. extern int 使用箭头显示   = 1;

  24. double 信率Ma[];
  25. double 黄上轨[];
  26. double 黄下轨[];
  27. double 黄中轨[];
  28. double KD信组[];
  29. //----
  30. int 始绘处1   = 0;
  31. int 始绘处2   = 0;

  32. int 绘箭数   = 15;

  33. //---------------初始化----------------+

  34. int init()
  35.   {
  36.    string 简称;
  37.    
  38.    string 箭头名;
  39.    for(int n=0; n<绘箭数; n++){
  40.       箭头名= "KD信号"+K周期+"_"+n;
  41.       ObjectDelete(箭头名);
  42.      }

  43.    CheckDonate();

  44.    IndicatorBuffers(4);

  45.    SetIndexStyle(0, DRAW_LINE);
  46.    SetIndexBuffer(0, 信率Ma);

  47.    if(使用通道显示==1){
  48.       SetIndexStyle(1, DRAW_LINE);
  49.       SetIndexBuffer(1, 黄上轨);
  50.       SetIndexStyle(2, DRAW_LINE);
  51.       SetIndexBuffer(2, 黄中轨);
  52.       SetIndexStyle(3, DRAW_LINE);
  53.       SetIndexBuffer(3, 黄下轨);
  54.      }
  55.    else
  56.       for(int i=1; i<=3; i++)
  57.          SetIndexStyle(i, DRAW_NONE);
  58.    
  59.    for(i=4; i<=7; i++)
  60.        SetIndexStyle(i, DRAW_NONE);
  61.    
  62.    //--
  63.    简称="Sto("+K周期+", "+D周期+", "+慢周期+")";
  64.    IndicatorShortName(简称);
  65.    SetIndexLabel(0, 简称);
  66.    SetIndexLabel(1, "80%");
  67.    SetIndexLabel(2, "50%");
  68.    SetIndexLabel(3, "20%");
  69.    //--
  70.    始绘处1= K周期+慢周期;
  71.    始绘处2= 始绘处1+D周期;
  72.    SetIndexDrawBegin(0, 始绘处1);
  73.    SetIndexDrawBegin(1, 始绘处1);
  74.    SetIndexDrawBegin(2, 始绘处1);
  75.    SetIndexDrawBegin(3, 始绘处1);
  76.    //--
  77.    ArraySetAsSeries(KD信组, true);
  78.    return(0);
  79.   }

  80. //--------------反初始化--------------+

  81. void deinit()
  82.   {
  83.    string 箭头名;
  84.    for(int n=0; n<绘箭数; n++){
  85.       箭头名= "KD信号"+K周期+"_"+n;
  86.       ObjectDelete(箭头名);
  87.      }
  88.   }

  89. //---------------主函数----------------+

  90. int start()
  91.   {
  92.    int    i, n;
  93.    int    已计= IndicatorCounted();

  94.    if(Bars<=始绘处2)
  95.      return(0);

  96.    if(ArraySize(KD信组)!=Bars)
  97.       ArrayResize(KD信组, Bars);

  98.    //--初始归0
  99.    if(已计<1)
  100.       for(i=1;i<=始绘处2;i++){
  101.          信率Ma[Bars-i]= 0;
  102.          黄下轨[Bars-i]= 0;
  103.          黄上轨[Bars-i]= 0;
  104.          黄中轨[Bars-i]= 0;
  105.          KD信组[Bars-i]= 0;
  106.         }

  107.    //--缓组赋值
  108.    double kk= Point*Scale/100;
  109.    int limit= Bars-已计;
  110.    for(i=0; i<limit; i++){
  111.       KD信组[i]= iStochastic(Symbol(), 0, K周期, D周期, 慢周期, MODE_SMA, 0, MODE_SIGNAL, i);
  112.       信率Ma[i]= iMA(Symbol(), 0, MA, 0, MODE_EMA, PRICE_MEDIAN, i)+(KD信组[i]-50)*kk;
  113.       if(使用通道显示==1){
  114.          黄上轨[i]= iMA(Symbol(), 0, MA, 0, MODE_EMA, PRICE_MEDIAN, i)+30*kk;
  115.          黄中轨[i]= iMA(Symbol(), 0, MA, 0, MODE_EMA, PRICE_MEDIAN, i);
  116.          黄下轨[i]= iMA(Symbol(), 0, MA, 0, MODE_EMA, PRICE_MEDIAN, i)-30*kk;
  117.         }
  118.      }
  119.    
  120.    //--物件箭头
  121.    if(使用箭头显示==1){
  122.       int 标志;
  123.       double 值D0, 值D1, 值D2, 值D3;
  124.       i= 0;
  125.       n= 0;
  126.       while(n<绘箭数 && i<Bars/*-已计*/){
  127.          标志= 0;
  128.          while(i<Bars/*-已计*/ && 标志==0){
  129.             值D0= iStochastic(Symbol(), 0, K周期, D周期, 慢周期, MODE_SMA, 0, MODE_SIGNAL, i+0);
  130.             值D1= iStochastic(Symbol(), 0, K周期, D周期, 慢周期, MODE_SMA, 0, MODE_SIGNAL, i+1);
  131.             值D2= iStochastic(Symbol(), 0, K周期, D周期, 慢周期, MODE_SMA, 0, MODE_SIGNAL, i+2);
  132.             值D3= iStochastic(Symbol(), 0, K周期, D周期, 慢周期, MODE_SMA, 0, MODE_SIGNAL, i+3);

  133.             if(值D0>值D1 && 值D2>值D1 && 值D3>值D2)
  134.                标志= +1;
  135.             if(值D0<值D1 && 值D2<值D1 && 值D3<值D2)
  136.                标志= -1;
  137.             if(标志!=0)
  138.                break;
  139.             i++;
  140.            }

  141.          string 箭头名="KD信号"+K周期+"_"+n;
  142.          ObjectDelete(箭头名);
  143.          if(标志==+1){
  144.             ObjectCreate(箭头名, OBJ_ARROW, 0, Time[i], Low[i]);
  145.             ObjectSet(箭头名, OBJPROP_ARROWCODE, 108);
  146.             ObjectSet(箭头名, OBJPROP_COLOR, Blue);
  147.             n++;
  148.            }
  149.          if(标志==-1){
  150.             ObjectCreate(箭头名, OBJ_ARROW, 0, Time[i], High[i]+(WindowPriceMax()-WindowPriceMin())/10);
  151.             ObjectSet(箭头名, OBJPROP_ARROWCODE, 108);
  152.             ObjectSet(箭头名, OBJPROP_COLOR, Red);
  153.             n++;
  154.            }
  155.          i+=1;
  156.         }
  157.      }
  158.    return(0);
  159.   }

  160. //---------------CheckDonate----------------+

  161. void CheckDonate()
  162.   {
  163.    int 手柄= 0;
  164.    string pay= "0";
  165.    datetime dt= 0;
  166.    string 文件名= "StochOC.txt";

  167.    手柄= FileOpen(文件名, FILE_READ|FILE_CSV, ";");
  168.    if(手柄>=1){
  169.       pay= FileReadString(手柄);
  170.       if(pay!= "0" && pay!="1")
  171.          pay= "0";
  172.       dt= StrToTime(FileReadString(手柄));
  173.      }
  174.    else{
  175.       dt= TimeCurrent();
  176.       手柄= FileOpen(文件名, FILE_WRITE|FILE_CSV, ";");
  177.       FileWrite(手柄, "0", TimeToStr(dt, TIME_DATE));
  178.      }
  179.    FileClose(手柄);
  180.    
  181.    if(pay=="0" && (TimeCurrent()-dt)>10*24*60*60){ // 5 ?í?é
  182.       if(MessageBoxA(0, "???è ?àì ??í?à?è??? èí?èêàò?? On Chart Stochastic, \n ??òèò? ??ì?÷ü à?ò??ó ìàò??èà?üí??", "??????", 4)==6){
  183.          ShellExecuteA(0, "Open", "iexplore.exe", "wmk:payto?Purse=R865705290089&Amount=100&Desc=Indicator&BringToFront=Y&ExecEvenKeeperIsOffline=Y", "", 7);
  184.          pay= "1";
  185.         }
  186.       dt= TimeCurrent();
  187.       
  188.       手柄= FileOpen(文件名, FILE_WRITE|FILE_CSV, ";");
  189.       FileWrite(手柄, pay, TimeToStr(dt, TIME_DATE));
  190.       FileClose(手柄);
  191.      }
  192.    FileClose(手柄);
  193.   }

  194. //--------------------------------------+
复制代码
6608525578306283573.jpg

""
还没有人打赏,支持一下

评论|共 25 个

wyq

发表于 2015-1-12 16:02:30 | 显示全部楼层

赚钱,赚积分。顶....

我爱sqq

发表于 2015-1-12 19:28:08 | 显示全部楼层

围观中~~~

tavsqshq

发表于 2015-1-12 19:58:25 | 显示全部楼层

[s:145]

ddddom

发表于 2015-1-12 20:03:13 | 显示全部楼层

围观

ddddom

发表于 2015-1-12 20:03:16 | 显示全部楼层

围观

紫竹青荷

发表于 2015-1-12 20:06:03 | 显示全部楼层

路过。。。看看。。。

紫竹青荷

发表于 2015-1-12 20:06:13 | 显示全部楼层

路过。。。看看。。。

8466983

发表于 2015-1-12 20:49:18 | 显示全部楼层

EA真的能赚钱么?

butterfly

发表于 2015-1-12 23:42:35 | 显示全部楼层


继续,学习了

123下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则