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

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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 99精品全国免费观看视频| 天天躁日日躁aaaaxxxx| 亚洲线精品一区二区三区影音先锋| 老司机午夜性生免费福利| 国产成人青青热久免费精品| 91短视频在线高清hd| 女人张开腿无遮无挡图| 中文字幕一区二区三区人妻少妇| 日韩欧美三级视频| 亚洲人成7777影视在线观看| 欧美老熟妇欲乱高清视频| 伊人色综合97| 精品久久久久久中文字幕女| 四虎影视永久在线观看| 视频一区在线免费观看| 国产女人和拘做受视频免费| 四虎国产永久免费久久| 国产精品无码专区在线播放| 91色在线观看| 大学生粉嫩无套流白浆| а天堂中文最新一区二区三区| 成年女人毛片免费视频| 久久久久亚洲av成人网人人软件| 日韩免费视频一区| 久久经典免费视频| 明星造梦一区二区| 亚洲AV无码乱码在线观看代蜜桃| 欧美国产日韩久久mv| 亚洲成人福利在线观看| 欧美视频在线观看免费| 亚洲精品无码国产| 波多野结衣和黑人| 亚洲色中文字幕在线播放| 狠狠色狠狠色综合网| 免费一级特黄特色大片在线| 窝窝视频成人影院午夜在线| 公交车被CAO得合不拢腿视频| 精品国产午夜福利在线观看| 欧美成人在线视频| 伊人任线任你躁| 男人添女人下部高潮全视频|