您現在的位置:程序化交易>> 期貨公式>> 金字塔等>> 金字塔知識>>正文內容

DrawLine為什么不劃線? [金字塔]

  • 咨詢內容: 以下代碼,在if條件滿足時,如何在左峰跟右峰的最高點之間畫線呢,這時候什么ref,hhv之類的函數都不能用了,很困惑。

    代碼如下:

    variable:lastPeakLow:=0;
    variable:lastPeakHigh:=0,lastPeakIndex:=0,lastPeakBreak:=0;
    //右峰數據
    lPeakLow:=Ref(Low,1);
    lPeakHigh:=Ref(High,1);
    //上一根K線是5根K線中的最高點,等待突破
    lastPeak:=REF(H,1)=HHV(H,左腿長);
    if lastPeak then BEGIN
         lastPeakBreak:=0;
         lastPeakIndex:=BARPOS-1;
         lastPeakLow:=lPeakLow;
         lastPeakHigh:=lPeakHigh;
         //DrawIcon(1, lastPeakHigh, 1);
    end;

     
    //尋找左峰,先記錄左峰數據:
    //尋找峰谷距離內的最高點
    prePeakHigh:=HHV(H,峰谷最寬);
    //最高點與當前峰的距離
    prePeakDist:=HHVBARS(H,峰谷最寬);
    //最高點K線的橫坐標
    prePeakIndex:=BARSCOUNT(c)-prePeakDist;
    //雙峰間的最低點
    preLow:=LLV(L,BARSCOUNT(c)-prePeakIndex);
    //判斷最高點是否為一個峰,即:該K線的最高點是5根K線中最高的,最低點不是5根中最低的
    prePeak:=REF(H,prePeakDist)=HHV(Ref(H,prePeakDist),左腿長);// and REF(L,prePeakDist)!=LLV(Ref(L,prePeakDist),左腿長);
    //如果不成立,則清除最高點數據,不記錄為左峰
    //成立,則計算雙峰相關數據
    if prePeak=0 then prePeakCount:=0;
    else
    //右峰必須達到的最低點
    highLimit:=preLow+(prePeakHigh-preLow)*0.8;

    //右峰突破時,記錄lastPeak信息
    if lastPeakBreak=0 and Low<lastPeakLow then begin
        //DRAWICON(1, lastPeakHigh, 5);
        //DRAWNumber(1, lastPeakHigh+20, lastPeakIndex, 7);
        //DRAWNumber(1, lastPeakHigh+30, lastPeakLow, 2);
        //DRAWNumber(1, lastPeakHigh+20, lastPeakHigh, 2);
        //突破成立lastPeak時,比較lastPeak和prePeak,看看是不是一個M?
        //是M,則標記,不是,直接記錄lastPeak為prePeak

        if prePeakHigh!=0 and lastPeakIndex-prePeakCount<峰谷最寬 and lastPeakIndex-prePeakCount>峰谷最窄
        and lastPeakHigh<=prePeakHigh and lastPeakHigh>highLimit then begin
            DRAWICON(1, lastPeakLow, 5);
            DRAWTEXT(1, lastPeakHigh+100, '上一個高點:'+numtostr(prePeakHigh,0)+';當前高點:'+numtostr(lastPeakHigh,0),colorgreen);
            DrawText(1, lastPeakHigh+200,'最低點:'+numtostr(preLow,0), COLORYELLOW);
            DrawText(1, lastPeakHigh+300,'上一個高點距離:'+numtostr(lastPeakIndex-prePeakCount,0),COLORWHITE);
            DRAWLINE(barpos=prePeakIndex,prePeakHigh,barpos=lastPeakIndex,lastPeakHigh,1);
        end;
        else begin
            prePeakHigh:=lastPeakHigh;
            prePeakLow:=lastPeakLow;
            prePeakCount:=lastPeakIndex;
        end;
        lastPeakBreak:=1;       
    end;


    個人分析,運行到if中的時候,barpos已經不可能再等于左峰的barscount了,所以系統找不到對應K線。
    那究竟如何畫呢?
    另外,如何使用Peak函數呢,有沒有簡便一點的方法來實現這樣一個邏輯:
    如果某一個K線,是5根K線中最高的,則當其低點被突破時,尋找左峰(上一個峰),如果存在一個左峰,則產生交易。
    (換句話來說,就是捕捉一個M形態。當一個M形態的右峰最高K線的低點被突破時,產生交易)
    [此貼子已經被作者于2013/10/5 18:26:38編輯過]

     

  • 金字塔客服: 左腿長,峰谷最寬,峰谷最窄,這3個是什么?

     

  • 用戶回復: 這個是預設參數左腿長:4峰谷最寬:20峰谷最窄:4

     

  • 網友回復:

    最后加這么一句

    DRAWLINE(REF(H,prePeakDist)=HHV(Ref(H,prePeakDist),左腿長),prePeakHigh,REF(H,1)=HHV(H,左腿長),lastPeakHigh,0);

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 1145508240  有需要幫忙請點擊這里留言!!!進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 亚洲欧美日韩一区在线观看| 精品人妻少妇一区二区| 美美哒韩国免费高清在线观看| 精品久久久久久久中文字幕 | 91手机在线视频| yellow2019电影在线高清观看| 91国内揄拍国内精品对白不卡| 国产4tube在线播放| 综合激情区视频一区视频二区| 狠狠ady精品| 日韩欧群交p片内射中文| 成人在线免费看片| 国内精品久久人妻互换| 国产亚洲综合久久| 人人妻人人澡人人爽不卡视频| 亚洲人成影院午夜网站| 丁香花高清在线观看完整版| 91久久偷偷做嫩草影院免| 视频在线观看国产| 欧美色图第三页| 无码人妻精品一区二区| 国内精品伊人久久久久网站| 国产又黄又大又粗的视频 | 欧美精品香蕉在线观看网| 精品欧美一区二区三区在线| 欧美乱强伦xxxxx高潮| 小莹的性荡生活37章| 国产成人精品曰本亚洲78| 免费va在线观看| 亚洲AV无码一区二区一二区| ak福利午夜在线观看| 视频一区视频二区制服丝袜| 浪荡女天天不停挨cao日常视频| 日本精品啪啪一区二区三区 | 李丽莎1分37钞视频最大尺度| 少妇高潮无套内谢| 国产成人涩涩涩视频在线观看| 免费a级毛片无码| 久久久久亚洲AV成人网| **aa级毛片午夜在线播放| 绿巨人晚上彻底放飞自己|