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

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  有需要幫忙請點擊這里留言?。?!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 国产一区在线观看视频| 夭天干天天做天天免费看| 亚洲乱妇老熟女爽到高潮的片| 看一级毛片女人洗澡| 国产v在线播放| 麻花传剧mv在线看星空| 国产福利一区二区三区在线视频 | 国产V亚洲V天堂无码网站| 黄页网址免费大全观看| 国产精品久久久久久久久久免费 | 大屁股熟女一区二区三区| 一级毛片恃级毛片直播| 把水管开水放b里是什么感觉| 久久天堂夜夜一本婷婷麻豆| 最近中文字幕mv在线视频www| 亚洲女初尝黑人巨高清| 欧美综合社区国产| 亚洲综合网美国十次| 男人女人做30分爽爽视频| 免费看污污的网站| 精品人妻久久久久久888| 午夜精品一区二区三区在线观看 | 天天插天天狠天天透| а√天堂中文在线资源bt在线| 成人国内精品久久久久一区| 丰满少妇高潮惨叫久久久| 日本爽爽爽爽爽爽在线观看免| 久久精品无码一区二区三区不卡 | 国产a级特黄的片子视频| 青草青视频在线观看| 国产国产精品人在线观看| 黄色网址免费观看| 国产成人无码一区二区在线播放| 欧美极品另类高清videos| 国产电影在线观看视频| 免费看男女下面日出水来| 国产欧美日韩精品a在线观看| caoporn地址| 国产欧美第一页| 国产国产在线播放你懂的| 国产成人免费福利网站|