根據條件依序處理呈現週期數
原碼使用環境: 主圖 兩分K 台當月+
************************************************************************原碼開始
M1:=MA(C,30),linethick4,precision2;
M2:=MA(C,60),linethick4,precision2;
M3:=MA(C,120),linethick4,precision2;
M4:=MA(C,240),linethick10,precision2;
M5:=MA(C,360),linethick4,precision2;
M6:=MA(C,480),linethick6,precision2;
M7:=MA(C,720),linethick10,precision2;
M8:=MA(C,960),linethick4,precision2;
一:C-M1,linethick0,precision0,colorff00ff;
二:C-M2,linethick0,precision0,color9900ff;
三:C-M3,linethick0,precision0,colorff3300;
四:C-M4,linethick0,precision0,colorcc0000;
五:C-M5,linethick0,precision0,colorff3366;
六:C-M6,linethick0,precision0,colorred;
七:C-M7,linethick0,precision0,color0099ff;
八:C-M8,linethick0,precision0,color0066ff;
StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color6600ff ;
StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color6600ff;
StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ;
StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;
StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ;
StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33;
Bullkeep:=一>=0;
Bearkeep:=一<=0;
Bullstart:=Cross(一,0);
Bearstart:=Cross(0,一);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
一A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=一>30;
BearS:=一<-30;
SS:=if(一A>0,sum(BullS=1,一A),0);
ST:=if(一A<0,sum(BearS=1,-一A),0);
一B:=SS+(-ST);
一CC:=(一B/一A)*100;
一C:=IF(一A>0,一CC,-一CC);
多分:=(一>0)*1+(一>30)*1+(一>60)*1;
空分:=(一<0)*-1+(一<-30)*-1+(一<-60)*-1;
一多:=If(一A>0,多分,0);
一空:=If(一A<0,空分,0);
一D:=一多+一空;
Bullkeep:=二>=30;
Bearkeep:=二<=-30;
Bullstart:=Cross(二,30);
Bearstart:=Cross(-30,二);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
二A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=二>60;
BearS:=二<-60;
SS:=if(二A>0,sum(BullS=1,二A),0);
ST:=if(二A<0,sum(BearS=1,-二A),0);
二B:=SS+(-ST);
二CC:=(二B/二A)*100;
二C:=IF(一A>0,二CC,-二CC);
多分:=(二>0)*1+(二>30)*1+(二>60)*1+(二>90)*1;
空分:=(二<0)*-1+(二<-30)*-1+(二<-60)*-1+(二<-90)*-1;
二多:=If(二A>0,多分,0);
二空:=If(二A<0,空分,0);
二D:=二多+二空;
Bullkeep:=三>=50;
Bearkeep:=三<=-50;
Bullstart:=Cross(三,50);
Bearstart:=Cross(-50,三);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
三A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=三>100;
BearS:=三<-100;
SS:=if(三A>0,sum(BullS=1,三A),0);
ST:=if(三A<0,sum(BearS=1,-三A),0);
三B:=SS+(-ST);
三CC:=(三B/三A)*100;
三C:=IF(三A>0,三CC,-三CC);
多分:=(三>30)*1+(三>60)*1+(三>90)*1+(三>120)*1+(三>150)*1;
空分:=(三<-30)*-1+(三<-60)*-1+(三<-90)*-1+(三<-120)*-1+(三<-150)*-1;
三多:=If(三A>0,多分,0);
三空:=If(三A<0,空分,0);
三D:=三多+三空;
Bullkeep:=四>=50;
Bearkeep:=四<=-50;
Bullstart:=Cross(四,50);
Bearstart:=Cross(-50,四);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
四A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=四>100;
BearS:=四<-100;
SS:=if(四A>0,sum(BullS=1,四A),0);
ST:=if(四A<0,sum(BearS=1,-四A),0);
四B:=SS+(-ST);
四CC:=(四B/四A)*100;
四C:=IF(四A>0,四CC,-四CC);
多分:=(四>30)*1+(四>60)*1+(四>90)*1+(四>120)*1+(四>150)*1;
空分:=(四<-30)*-1+(四<-60)*-1+(四<-90)*-1+(四<-120)*-1+(四<-150)*-1;
四多:=If(四A>0,多分,0);
四空:=If(四A<0,空分,0);
四D:=四多+四空;
Bullkeep:=五>=80;
Bearkeep:=五<=-80;
Bullstart:=Cross(五,80);
Bearstart:=Cross(-80,五);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
五A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=五>160;
BearS:=五<-160;
SS:=if(五A>0,sum(BullS=1,五A),0);
ST:=if(五A<0,sum(BearS=1,-五A),0);
五B:=SS+(-ST);
五CC:=(五B/五A)*100;
五C:=IF(五A>0,五CC,-五CC);
多分:=(五>80)*1+(五>120)*1+(五>160)*1+(五>200)*1+(五>240)*1;
空分:=(五<-80)*-1+(五<-120)*-1+(五<-160)*-1+(五<-200)*-1+(五<-240)*-1;
五多:=If(五A>0,多分,0);
五空:=If(五A<0,空分,0);
五D:=五多+五空;
Bullkeep:=六>=80;
Bearkeep:=六<=-80;
Bullstart:=Cross(六,80);
Bearstart:=Cross(-80,六);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
六A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=六>200;
BearS:=六<-200;
SS:=if(六A>0,sum(BullS=1,六A),0);
ST:=if(六A<0,sum(BearS=1,-六A),0);
六B:=SS+(-ST);
六CC:=(六B/六A)*100;
六C:=IF(六A>0,六CC,-六CC);
多分:=(六>80)*1+(六>120)*1+(六>160)*1+(六>220)*1+(六>280)*1;
空分:=(六<-80)*-1+(六<-120)*-1+(六<-160)*-1+(六<-220)*-1+(六<-280)*-1;
六多:=If(六A>0,多分,0);
六空:=If(六A<0,空分,0);
六D:=六多+六空;
Bullkeep:=七>=150;
Bearkeep:=七<=-150;
Bullstart:=Cross(七,150);
Bearstart:=Cross(-150,七);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
七A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=七>300;
BearS:=七<-300;
SS:=if(七A>0,sum(BullS=1,七A),0);
ST:=if(七A<0,sum(BearS=1,-七A),0);
七B:=SS+(-ST);
七CC:=(七B/七A)*100;
七C:=IF(七A>0,七CC,-七CC);
多分:=(七>150)*1+(七>200)*1+(七>300)*1+(七>400)*1+(七>500)*1;
空分:=(七<-150)*-1+(七<-200)*-1+(七<-300)*-1+(七<-400)*-1+(七<-500)*-1;
七多:=If(七A>0,多分,0);
七空:=If(七A<0,空分,0);
七D:=七多+七空;
Bullkeep:=八>=200;
Bearkeep:=八<=-200;
Bullstart:=Cross(八,200);
Bearstart:=Cross(-200,八);
BullB:=Bullstart=1; BullBSP:=barslast(BullB);
BullB:=Sum(Bullkeep=1 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);
BearB:=Bearstart=1; BearBSP:=barslast(BearB);
BearB:=Sum(Bearkeep=1 ,BearBSP+1)=BearBSP+1;
Bearhold:=barslast(BearB=0);
八A:=Bullhold-Bearhold,precision0,linethick0;
BullS:=八>400;
BearS:=八<-400;
SS:=if(八A>0,sum(BullS=1,八A),0);
ST:=if(八A<0,sum(BearS=1,-八A),0);
八B:=SS+(-ST);
八CC:=(八B/八A)*100;
八C:=IF(八A>0,八CC,-八CC);
多分:=(八>400)*1+(八>500)*1+(八>600)*1+(八>700)*1+(八>800)*1;
空分:=(八<-400)*-1+(八<-500)*-1+(八<-600)*-1+(八<-700)*-1+(八<-800)*-1;
八多:=If(八A>0,多分,0);
八空:=If(八A<0,空分,0);
八D:=八多+八空;
***********************************************************************************************原碼結束
總版主新年快樂,盼望可以這兩天得到您的支援,詳列需求如下:
1. 新增一個函數命名為[週期]:= 從一C到八C 依序處理,絕對值數據突破60開始起算週期數,如果一C達到60則開始起算週期數=1,然後二C也接續Cross60 則開始忽略一C,從這個點位開始持續累加週期數,隨著時間進行如果三C也在隨後突破60,則此時完全忽略一C、二C..............依此類推持續跑流程 處理 四C~八C
2. 允許一C、二C沒有達標直接跳到三C首次突破60,則從此點位開始起算週期=1(即使三C後來跌落60以下依然持續累計週期數直到出現四C以後的C值出現Cross60,如果 四C、五C、六C、七C、八C始終沒有任何一個出現Cross60,則週期數累計直到三C<=0
新增一個函數 [接棒]=: 輸出當下擔綱週期數累計的C數值是哪一個(本例為 三C,請輸出 3 )
3. 新增一個函數 [強度]:= 輸出當下 [接棒] 者所對應到的 D值 (本例為 三D)
4. 接續第2點: 如果該段行情從一C~六C都[曾經]出現Cross60,則[週期]數應依序持續累計到六C<=0為止,C值正數則週期數為正值,C值負數則週期數為負值
舉例強化說明: 當一段行情持續進行到出現五C達標接續該波[週期]數,同一時間忽略排除一~四C的任何數據,五C來到80之後又跌落60以下(應持續累計週期數),此時會有三種情況處理方式如下:
a. 六C、七C、八C始終都沒有出現 Cross60,則該週期數累計終點就是 五C<=0的那一筆
b. 六C也在五C<=0之前 Cross60,則 [週期]數改由 六C接棒持續累計直到 六C<=0
c. 五C歸零之後又出現 六C或七C或八C Cross60(此時必須忽略),本波 [週期]數 停在 五C結束,不再處理 六~八C
|