 |
ivancclai
資深會員
註冊日期: Apr 2017
來 自: New Taipei city
文章數量: 243 |
求助 最後ˊ60分時 創新高或創新低 一分kl產生ˊ60分創新高後 產生第一項下缺口
版主你好
求助修改下列程式
邏輯是 在最後60分鐘中
條件1: 1分k創60分新高
條件2: 有向下缺口產生
反之
條件1: 1分k創ˊ60分新低
條件2: 有向上缺口產生
條件1 我會寫 但是條件二 我不會 所以求助版主 謝謝
//==========================================================================
//=============================== 缺口 =================================
HH:=HIGH; LL:=LOW; UH:=MAX(OPEN,CLOSE); UL:=MIN(OPEN,CLOSE);
ZA:=CLOSE*0;
UT1:=ZA; UT2:=ZA; UP1:=ZA; UP2:=ZA; UD1:=ZA; UD2:=ZA;
DT1:=ZA; DT2:=ZA; DP1:=ZA; DP2:=ZA; DD1:=ZA; DD2:=ZA;
for i=DATACOUNT downto 2 do begin
IF UL[i]>UH[i-1] then begin //跳上
IF LL[i]<HH[i-1] then begin
UT1[i]:=1; UT2[i-1]:=1; UP1[i]:=UL[i]; UP2[i-1]:=UH[i-1];
end else begin
UT1[i]:=2; UT2[i-1]:=2; UP1[i]:=LL[i]; UP2[i-1]:=HH[i-1];
end;
for j=i+1 to DATACOUNT do IF LL[j]<UP1[i] then break;
j:=j-(j>DATACOUNT); UD1[i]:=j-i;
for j=i to DATACOUNT do IF LL[j]<UP2[i-1] then break;
j:=j-(j>DATACOUNT); UD2[i-1]:=j-i+1;
end else IF UH[i]<UL[i-1] then begin //跳下
IF HH[i]>LL[i-1] then begin
DT1[i]:=1; DT2[i-1]:=1; DP1[i]:=UH[i]; DP2[i-1]:=UL[i-1];
end else begin
DT1[i]:=2; DT2[i-1]:=2; DP1[i]:=HH[i]; DP2[i-1]:=LL[i-1];
end;
for j=i+1 to DATACOUNT do IF HH[j]>DP1[i] then break;
j:=j-(j>DATACOUNT); DD1[i]:=j-i;
for j=i to DATACOUNT do IF HH[j]>DP2[i-1] then break;
j:=j-(j>DATACOUNT); DD2[i-1]:=j-i+1;
end;
end;
DRAWSL(UT2=1 and UD2>0,UP2,0,UD2,0) color66FF pxdn0 LINETHICK2 LINEDASH;//=============== 向上缺口低==
DRAWSL(UT2=2 and UD2>0,UP2,0,UD2,0) color66FF pxdn0 LINETHICK2 LINEDASH;
DRAWSL(DT2=1 and DD2>0,DP2,0,DD2,0) colorFFFF pxdn0 LINETHICK2 LINEDASH;//=============== 向下缺口高==
DRAWSL(DT2=2 and DD2>0,DP2,0,DD2,0) colOrFFFF pxdn0 LINETHICK2 LINEDASH;
DRAWICON(UT2=1 AND UD2>0,MAX(C,O)-3,'$BA_BS_5B.gif') pxdn10;//紅 多
DRAWICON(UT2=2 AND UD2>0,MAX(C,O)-3,'$BA_BS_5B.gif') pxdn10;//紅 多
DRAWICON(DT2=1 and DD2>0,MIN(C,O)+3,'$BA_BS_5S.gif') pxUP90;//綠 空
DRAWICON(DT2=2 and DD2>0,MIN(C,O)+3,'$BA_BS_5S.gif') pxUP90;//綠 空
DRAWSL(UT1=1 and UD1>0,UP1,0,UD1,0) coloR66FF pxdn0 LINETHICK1 LINEDASH;
DRAWSL(UT1=2 and UD1>0,UP1,0,UD1,0) color66FF pxdn0 LINETHICK1 LINEDASH;
DRAWSL(DT1=1 and DD1>0,DP1,0,DD1,0) colORFFFF pxdn0 LINETHICK1 LINEDASH;
DRAWSL(DT1=2 and DD1>0,DP1,0,DD1,0) colorFFFF pxdn0 LINETHICK1 LINEDASH;
//======================================================================
//=========================================================================================================================================
//=============================M60 創新高低後 缺口 見高與落底k判讀==========================================================================
// =================================================================
//DRAWICON(THAA,HIGH+10,'$SO_BS_2S.gif') pxup450;
//SP1:=BARSLAST(條件1);
//條件2:=CLOSE>REF(HIGH,SP1);
//條件2:=條件2 and SUM(條件2,SP1+1)=1;
//========================================================================
//MA20:MA(CLOSE,20), linethick0 colorFF3FF; // 小藍 MA20
//MA20DOWN:=MA20<REF(MA20,1);
//PARTLINE(MA20,MA20) colorFF33FF,linethick3;
//PARTLINE(MA20DOWN,MA20) colorFFFF00,linethick3;
//DRAWSL(ISLASTBAR ,MA20,0,0,3) pxdn0 coloRFFF00 LINETHICK1 LINEDOT;
//DRAWNUMBER(ISLASTBAR,MA20,MA20,PN) SHIFT3,colorFFFF00 PXUP60;
//DRAWTEXT(ISLASTBAR,MA20,'MA20') SHIFT1,colorFFFF00 PXUP60;
//==========================================================================================
IF DATATYPE <4 THEN BEGIN
//==============第一=================================================================
MH60X:= HIGH = MH60 LINETHICK0 COLORFFFFFF;
//STICKLINE(MH60X,LOW,LOW,8,0),COLOR00FF00 LINETHICK5 LINEDOT ;
//DRAWICON(MH60x ,(CLOSE+OPEN)/2,'$SO_N1_S1.gif') PXUP20 ALIGN20;//1 綠
//DRAWNUMBER(MH60A,H,HH3,PPN) ALIGN0 ,colorFF PXUP60;//========
//DRAWNUMBER(MH60A,L,LL3,PPN) ALIGN0 ,colorFF00 PXDN60;//========
//DRAWTEXT(MH60A,HIGH+1,'M60創新高') ALIGN0,coloRFF00 PXUP127;
ML60X:= LOW = ML60 LINETHICK0 COLORFFFFFF;
//STICKLINE(ML60X,HIGH,HIGH,8,0),COLOR00BBFF LINETHICK5 LINEDOT ;
//DRAWICON(ML60x,(CLOSE+OPEN)/2,'$SO_N1_B1.gif') PXDN20 ALIGN0;//1 紅
//DRAWNUMBER(ML60A,H,HH3,PPN) ALIGN0 colorFF PXUp60;//======
//DRAWNUMBER(ML60A,L,LL3,PPN) ALIGN0 colorFF00 PXDN60;//======
//DRAWTEXT(ML60A,LOW-1,'M60創新低') ALIGN0,coloR00FF00 PXDN127 SHIFT;
//==================================================================================
//===============第二===========================================================
// ==================================================================
//DRAWICON(THAA,HIGH+10,'$SO_BS_2S.gif') pxup450;
//SP1:=BARSLAST(條件1);
//條件2:=CLOSE>REF(HIGH,SP1);
//條件2:=條件2 and SUM(條件2,SP1+1)=1;
//========================================================================
SP1X:=BARSLAST(MH60X);
條件2X := CLOS< REF(LOW,SP1X);
條件2X:=條件2X and SUM(條件2X,SP1X+1)=1;
//DRAWICON(條件2X,(C+O)/2,'$SO_N1_S2.gif') pxDN20 ALIGN0;//2 綠
SP2X:=BARSLAST(ML60X);
條件3X := CLOSE> REF(HIGH,SP2X);
條件3X:=條件3X and SUM(條件3X,SP2X+1)=1;
//DRAWICON(條件3X,(CLOSE+OPEN)/2,'$SO_N1_B2.gif') pxDN0 ALIGN0;//2 紅
//================================================================================
|
|
向版主報告此篇 |  |
|
2024-11-22 06:17 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18091 |
回覆: 求助 最後ˊ60分時 創新高或創新低 一分kl產生ˊ60分創新高後 產生第一項下缺口
引用: 最初由 ivancclai 發表
版主你好
求助修改下列程式
邏輯是 在最後60分鐘中
條件1: 1分k創60分新高
條件2: 有向下缺口產生
反之
條件1: 1分k創ˊ60分新低
條件2: 有向上缺口產生
條件1 我會寫 但是條件二 我不會 所以求助版主 謝謝
//==========================================================================
//=============================== 缺口 =================================
HH:=HIGH; LL:=LOW; UH:=MAX(OPEN,CLOSE); UL:=MIN(OPEN,CLOSE);
ZA:=CLOSE*0;
UT1:=ZA; UT2:=ZA; UP1:=ZA; UP2:=ZA; UD1:=ZA; UD2:=ZA;
DT1:=ZA; DT2:=ZA; DP1:=ZA; DP2:=ZA; DD1:=ZA; DD2:=ZA;
for i=DATACOUNT downto 2 do begin
IF UL[i]>UH[i-1] then begin //跳上
IF LL[i]<HH[i-1] then begin
UT1[i]:=1; UT2[i-1]:=1; UP1[i]:=UL[i]; UP2[i-1]:=UH[i-1];
end else begin
UT1[i]:=2; UT2[i-1]:=2; UP1[i]:=LL[i]; UP2[i-1]:=HH[i-1];
end;
for j=i+1 to DATACOUNT do IF LL[j]<UP1[i] then break;
j:=j-(j>DATACOUNT); UD1[i]:=j-i;
for j=i to DATACOUNT do IF LL[j]<UP2[i-1] then break;
j:=j-(j>DATACOUNT); UD2[i-1]:=j-i+1;
end else IF UH[i]<UL[i-1] then begin //跳下
IF HH[i]>LL[i-1] then begin
DT1[i]:=1; DT2[i-1]:=1; DP1[i]:=UH[i]; DP2[i-1]:=UL[i-1];
end else begin
DT1[i]:=2; DT2[i-1]:=2; DP1[i]:=HH[i]; DP2[i-1]:=LL[i-1];
end;
for j=i+1 to DATACOUNT do IF HH[j]>DP1[i] then break;
j:=j-(j>DATACOUNT); DD1[i]:=j-i;
for j=i to DATACOUNT do IF HH[j]>DP2[i-1] then break;
j:=j-(j>DATACOUNT); DD2[i-1]:=j-i+1;
end;
end;
DRAWSL(UT2=1 and UD2>0,UP2,0,UD2,0) color66FF pxdn0 LINETHICK2 LINEDASH;//=============== 向上缺口低==
DRAWSL(UT2=2 and UD2>0,UP2,0,UD2,0) color66FF pxdn0 LINETHICK2 LINEDASH;
DRAWSL(DT2=1 and DD2>0,DP2,0,DD2,0) colorFFFF pxdn0 LINETHICK2 LINEDASH;//=============== 向下缺口高==
DRAWSL(DT2=2 and DD2>0,DP2,0,DD2,0) colOrFFFF pxdn0 LINETHICK2 LINEDASH;
DRAWICON(UT2=1 AND UD2>0,MAX(C,O)-3,'$BA_BS_5B.gif') pxdn10;//紅 多
DRAWICON(UT2=2 AND UD2>0,MAX(C,O)-3,'$BA_BS_5B.gif') pxdn10;//紅 多
DRAWICON(DT2=1 and DD2>0,MIN(C,O)+3,'$BA_BS_5S.gif') pxUP90;//綠 空
DRAWICON(DT2=2 and DD2>0,MIN(C,O)+3,'$BA_BS_5S.gif') pxUP90;//綠 空
DRAWSL(UT1=1 and UD1>0,UP1,0,UD1,0) coloR66FF pxdn0 LINETHICK1 LINEDASH;
DRAWSL(UT1=2 and UD1>0,UP1,0,UD1,0) color66FF pxdn0 LINETHICK1 LINEDASH;
DRAWSL(DT1=1 and DD1>0,DP1,0,DD1,0) colORFFFF pxdn0 LINETHICK1 LINEDASH;
DRAWSL(DT1=2 and DD1>0,DP1,0,DD1,0) colorFFFF pxdn0 LINETHICK1 LINEDASH;
//======================================================================
//=========================================================================================================================================
//=============================M60 創新高低後 缺口 見高與落底k判讀==========================================================================
// =================================================================
//DRAWICON(THAA,HIGH+10,'$SO_BS_2S.gif') pxup450;
//SP1:=BARSLAST(條件1);
//條件2:=CLOSE>REF(HIGH,SP1);
//條件2:=條件2 and SUM(條件2,SP1+1)=1;
//========================================================================
//MA20:MA(CLOSE,20), linethick0 colorFF3FF; // 小藍 MA20
//MA20DOWN:=MA20<REF(MA20,1);
//PARTLINE(MA20,MA20) colorFF33FF,linethick3;
//PARTLINE(MA20DOWN,MA20) colorFFFF00,linethick3;
//DRAWSL(ISLASTBAR ,MA20,0,0,3) pxdn0 coloRFFF00 LINETHICK1 LINEDOT;
//DRAWNUMBER(ISLASTBAR,MA20,MA20,PN) SHIFT3,colorFFFF00 PXUP60;
//DRAWTEXT(ISLASTBAR,MA20,'MA20') SHIFT1,colorFFFF00 PXUP60;
//==========================================================================================
IF DATATYPE <4 THEN BEGIN
//==============第一=================================================================
MH60X:= HIGH = MH60 LINETHICK0 COLORFFFFFF;
//STICKLINE(MH60X,LOW,LOW,8,0),COLOR00FF00 LINETHICK5 LINEDOT ;
//DRAWICON(MH60x ,(CLOSE+OPEN)/2,'$SO_N1_S1.gif') PXUP20 ALIGN20;//1 綠
//DRAWNUMBER(MH60A,H,HH3,PPN) ALIGN0 ,colorFF PXUP60;//========
//DRAWNUMBER(MH60A,L,LL3,PPN) ALIGN0 ,colorFF00 PXDN60;//========
//DRAWTEXT(MH60A,HIGH+1,'M60創新高') ALIGN0,coloRFF00 PXUP127;
ML60X:= LOW = ML60 LINETHICK0 COLORFFFFFF;
//STICKLINE(ML60X,HIGH,HIGH,8,0),COLOR00BBFF LINETHICK5 LINEDOT ;
//DRAWICON(ML60x,(CLOSE+OPEN)/2,'$SO_N1_B1.gif') PXDN20 ALIGN0;//1 紅
//DRAWNUMBER(ML60A,H,HH3,PPN) ALIGN0 colorFF PXUp60;//======
//DRAWNUMBER(ML60A,L,LL3,PPN) ALIGN0 colorFF00 PXDN60;//======
//DRAWTEXT(ML60A,LOW-1,'M60創新低') ALIGN0,coloR00FF00 PXDN127 SHIFT;
//==================================================================================
//===============第二===========================================================
// ==================================================================
//DRAWICON(THAA,HIGH+10,'$SO_BS_2S.gif') pxup450;
//SP1:=BARSLAST(條件1);
//條件2:=CLOSE>REF(HIGH,SP1);
//條件2:=條件2 and SUM(條件2,SP1+1)=1;
//========================================================================
SP1X:=BARSLAST(MH60X);
條件2X := CLOS< REF(LOW,SP1X);
條件2X:=條件2X and SUM(條件2X,SP1X+1)=1;
//DRAWICON(條件2X,(C+O)/2,'$SO_N1_S2.gif') pxDN20 ALIGN0;//2 綠
SP2X:=BARSLAST(ML60X);
條件3X := CLOSE> REF(HIGH,SP2X);
條件3X:=條件3X and SUM(條件3X,SP2X+1)=1;
//DRAWICON(條件3X,(CLOSE+OPEN)/2,'$SO_N1_B2.gif') pxDN0 ALIGN0;//2 紅
//================================================================================
有點看不懂您在寫什麼!!
在最後60分鐘中
條件1: 1分k創60分新高
條件2: 有向下缺口產生
反之
條件1: 1分k創ˊ60分新低
條件2: 有向上缺口產生
問題是
既然是創新高,怎會是產生"向下缺口"
這很矛盾,是否寫反了!!!!
還是
"條件2" 在60分鐘內發生過都算???
如果只是要判斷有無向上或向下缺口產生
不需要添加這一堆複雜的程式碼!!!
|
|
向版主報告此篇 |  |
|
2024-11-22 09:21 |
|
|
|  |
 |
ivancclai
資深會員
註冊日期: Apr 2017
來 自: New Taipei city
文章數量: 243 |
這樣解釋是否可以幫我解釋給版主
我希望再創新高綠1 創新低 紅1
之 後產生第一個缺口 劃黃橘線 開始位置標示
|
最後由 ivancclai 在 2024-11-22 13:26 編輯 |
向版主報告此篇 |  |
|
2024-11-22 13:23 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|