ktdev 发表于 2012-12-1 12:31:19

缺口

//缺口 SH600053 P_DAY
//-------金魔方智能交易公式--------------
//参数设置
#MAINCHART
#Run_By_Bar
#nodefaultoutput
Input:                                       
  P(2,1,10,1), //与昨收价相比百分比多少算缺口默认2%
  只显示未回补缺口(0), // 是否只显示没关闭的缺口
  最近几个周期(0),//只显示最近N个周期内的缺口,为0表示显示所有的
  w(2); // 画线宽度默认2像素
variable:
        lastGapUpCount(0),
        lastGapDownCount(0);

Array:
        lastGapUpArrayID1(0),
        lastGapUpArrayID2(0),
        lastGapDownArrayID1(0),
        lastGapDownArrayID2(0),
        lastGapUpArrayTextID(0),
        lastGapDownArrayTextID(0),
        lastGapUpArray(0),
        lastGapDownArray(0);
       
gapUpPrice =   high + close * P/100;
gapDownPrice =   low - close * P/100;


if (最近几个周期 > 0 and (DataCount - BarPos) < 最近几个周期) or
   (最近几个周期 == 0 and BARPOS > 1 ) then begin
        if low > gapUpPrice then begin
                lastGapUpArray = BarPos ;
               
                lastGapUpArrayID1 = TL_NEW( date, time, low, date, time, low);
                TL_SETSIZE(lastGapUpArrayID1, w);
                TL_SETCOLOR(lastGapUpArrayID1, ColorMagenta);

                lastGapUpArrayID2  = TL_NEW(date, time, high, date, time, high);
                TL_SETSIZE(lastGapUpArrayID2, w);
                TL_SETCOLOR(lastGapUpArrayID2, ColorMagenta);
               
                lastGapUpArrayTextID = TEXT_NEW(date, time, (high + low)/2, '向上跳空' + (low - close)/close*100 + '%' );
                Text_SetStyle(lastGapUpArrayTextID, 0, 2);
                Text_SetColor(lastGapUpArrayTextID, ColorMagenta);
               
                lastGapUpCount++;       
        end
       
        if HIGH < gapDownPrice then begin
                lastGapDownArray = BarPos;
                lastGapDownArrayID1 = TL_NEW( date, time, low, date, time,low);
                TL_SETSIZE(lastGapDownArrayID1, w);
                TL_SETCOLOR(lastGapDownArrayID1, ColorGreen);

                lastGapDownArrayID2 = TL_NEW(date, time, high, date, time, high);
                TL_SETSIZE(lastGapDownArrayID2, w);
                TL_SETCOLOR(lastGapDownArrayID2, ColorGreen);
               
                lastGapDownArrayTextID = TEXT_NEW(date, time, (low + high)/2, '向下跳空' + (close - high )/close*100 + '%' );
                Text_SetStyle(lastGapDownArrayTextID , 0, 2);
                Text_SetColor(lastGapDownArrayTextID , ColorGreen);
                               
                lastGapDownCount++;       
        end
       
        for i = 0 to lastGapUpCount do begin
                if lastGapUpArray > 0  then begin
                        n =  barpos - lastGapUpArray;
                        TL_SetEnd(lastGapUpArrayID1, date, time, low,);
                        TL_SetEnd(lastGapUpArrayID2, date, time, high);
                        if low <= High then begin
                                if 只显示未回补缺口 then begin
                                        TL_Delete(lastGapUpArrayID1);
                                        TL_Delete(lastGapUpArrayID2);
                                        Text_Delete(lastGapUpArrayTextID);
                                end
                                else begin
                                        ID2 = TL_NEW(date, time, low, date, time, high);
                                        TL_SETSIZE(ID2, w);
                                        TL_SETCOLOR(ID2, ColorMagenta);
                                end
                                lastGapUpArray = 0;
                        end               
                       
                end                       
        end
       
        for i = 0 to lastGapDownCount do begin
                if lastGapDownArray > 0  then begin
                        n =  barpos - lastGapDownArray;
                        TL_SetEnd(lastGapDownArrayID1, date, time, low);
                        TL_SetEnd(lastGapDownArrayID2, date, time, high);
                        if high >= low then begin
                                if 只显示未回补缺口 then begin
                                        TL_Delete(lastGapDownArrayID1);               
                                        TL_Delete(lastGapDownArrayID2);
                                        Text_Delete(lastGapDownArrayTextID);
                                end
                                else begin
                                        ID2 = TL_NEW(date, time,low, date, time, high);
                                        TL_SETSIZE(ID2, w);
                                        TL_SETCOLOR(ID2, ColorGreen);
                                end
                                lastGapDownArray = 0;
                        end               
                       
                end               
        end

end

天使fop 发表于 2013-3-21 10:51:29

非常感谢~~~~~~~~~~~











static/image/common/sigline.gif
什么牌子的挂烫机好shruilixiu.cn冲锋衣gelunbiyachongfengyi.com男士护肤品哪个牌子好gddawn.cn

jrtj 发表于 2013-4-21 09:50:33

能不能象金字塔那样自动在图里提示最近的,

自游族 发表于 2013-4-21 13:03:00

能不能搞一个和通达信那个完全一样的缺口显示,同时在系统选项里可以设置。

tupi 发表于 2013-6-20 23:40:52

还是软件自带好啦,通达信现在都可以自选缺口数量了

ladiluth 发表于 2014-4-14 17:57:52

学习

xiuzong 发表于 2014-4-21 11:46:47

自游族 发表于 2013-4-21 13:03 static/image/common/back.gif
能不能搞一个和通达信那个完全一样的缺口显示,同时在系统选项里可以设置。 ...

支持,并且应该在选项中勾选!

调整结束 发表于 2014-12-15 11:18:16

不错!
再改进下就好了!

mgbrxj 发表于 2014-12-16 13:18:16

赞同,通达信中显示缺口的方式为优!!!!

nolandcn 发表于 2015-1-5 15:23:23

GET
页: [1] 2
查看完整版本: 缺口