 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1501 |
感謝指導!
請問DRAWLINE函數是'第一個'COND2之成立K,並去找'最後一個'COND1之成立K這樣嗎?
|
|
向版主報告此篇 |  |
|
2024-02-07 09:23 |
|
|
|  |
 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1501 |
FK:=BARPOS=1 or ref(time,1)<084500 and time>=084500;
DBCK:=if(datatype=0 or datatype=12,FK,IF(datatype=1 or datatype=11 or datatype=2,TradeDate<>REF(TradeDate,1) or IsRegularFBar,BARPOS=1));
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
CKMM4:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=4,CKSP,4),4),LINETHICK;
CKMM15:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=15,CKSP,15),15),LINETHICK;
當日高:=HHV(H,CKSP); 當日低:=LLV(L,CKSP),COLORRED;
IF DATATYPE=12 OR DATATYPE=1 OR DATATYPE=2 THEN RG:當日高-當日低,COLOR000000,LINETHICK;
CKMM15RG:MA(IF(DBCK,REFX(H-L,1),H-L),CKMM15),LINETHICK,NOAXIS;
出場RG參數1:MAX(IF(RG<=150,30.1,IF(RG>150 AND RG<=250,40.1,50.1)),CKMM15RG*2);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(部分省略)
上下XDS:=上下UP-上下DN;
上下XDSS:=REF(上下XDS,BARSLAST(上下XDS<>0));
上下XD:if(barpos<lbound(上下XDSS) or lbound(上下XDSS)=0,0,上下XDSS),COLOR000000,LINETHICK,NOAXIS;//從首根K棒就有數值
首訊多:=SUM(上下XD<>0,CKSP)=1 AND 上下XD=1; 首訊空:=SUM(上下XD<>0,CKSP)=1 AND 上下XD=-1; 首訊:IF(首訊多,1,IF(首訊空,-1,0)),COLOR000000;
VERTLINE(首訊<>0 AND 首訊多),COLORRED;
VERTLINE(首訊<>0 AND 首訊空),COLORBLUE,LINEDOT;
預F空守:LLV(L,BARSLAST(首訊空))+出場RG參數1,COLORBLUE;
預F多守:HHV(H,BARSLAST(首訊多))-出場RG參數1,COLORRED;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
POWER:=C,COLOR000000,LINETHICK2;
HH:=H; LL:=L; BL_DBCK:=BARSLAST(DBCK);
ZAry:=BL_DBCK*0; 出場RG參數2:=ZAry+出場RG參數1; //XXX請帶入常數或數列
ST:=lbound(BL_DBCK); RSP:=BL_DBCK[ST]; Now多空:=0;
F空守:LL[ST-RSP]+出場RG參數2[ST-RSP],COLORBLUE,LINETHICK1;
F多守:HH[ST-RSP]-出場RG參數2[ST-RSP],COLORRED,LINETHICK1;
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000,LINETHICK2;
for i= ST+1 to datacount do begin
多空[i]:=Now多空; RSP:=BL_DBCK[i];
if Now多空=0 then begin //初始
多空[i]:=(POWER[i]>F空守 and POWER[i-1]<=F空守)-(F多守>POWER[i] and F多守<=POWER[i-1]);
if 多空[i]<>0 then 籌守[i]:=POWER[i]-多空[i]*出場RG參數2[i];
end else if Now多空=1 then begin //多方
籌守[i]:=max(POWER[i]-出場RG參數2[i],籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=POWER[i]+出場RG參數2[i];
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(POWER[i]+出場RG參數2[i],籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=POWER[i]-出場RG參數2[i];
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
KLINE(O,H,L,C,0);
重新貼上公式,加上要添加的部分(總版主指導部分僅有更改為自己容易記憶的變數名稱)!
因為會有全部時間都沒有訊號的狀況!
所以請總版主幫我更改規則為===
1,第一個多空<>0的訊號早於首訊<>0訊號,則沿用原本的'F空守'與'F多守'!
2,首訊<>0的訊號早於第一個多空<>0訊號,則改用'預F空守'或'預F多守'!直到多空<>0的訊號發生(指得是突破'預F空守'或是跌破'預F多守'),就回到原本'F空守'與'F多守'的規則!
不知有無邏輯疏漏,規則衝突之情況,還請總版主指正,感謝總版主的協助,並祝周休愉快!
Markchu7 附帶上了此圖片:
|
最後由 Markchu7 在 2024-09-27 10:57 編輯 |
向版主報告此篇 |  |
|
2024-09-27 10:49 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18114 |
引用: 最初由 Markchu7 發表
FK:=BARPOS=1 or ref(time,1)<084500 and time>=084500;
DBCK:=if(datatype=0 or datatype=12,FK,IF(datatype=1 or datatype=11 or datatype=2,TradeDate<>REF(TradeDate,1) or IsRegularFBar,BARPOS=1));
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
CKMM4:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=4,CKSP,4),4),LINETHICK;
CKMM15:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=15,CKSP,15),15),LINETHICK;
當日高:=HHV(H,CKSP); 當日低:=LLV(L,CKSP),COLORRED;
IF DATATYPE=12 OR DATATYPE=1 OR DATATYPE=2 THEN RG:當日高-當日低,COLOR000000,LINETHICK;
CKMM15RG:MA(IF(DBCK,REFX(H-L,1),H-L),CKMM15),LINETHICK,NOAXIS;
出場RG參數1:MAX(IF(RG<=150,30.1,IF(RG>150 AND RG<=250,40.1,50.1)),CKMM15RG*2);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
(部分省略)
上下XDS:=上下UP-上下DN;
上下XDSS:=REF(上下XDS,BARSLAST(上下XDS<>0));
上下XD:if(barpos<lbound(上下XDSS) or lbound(上下XDSS)=0,0,上下XDSS),COLOR000000,LINETHICK,NOAXIS;//從首根K棒就有數值
首訊多:=SUM(上下XD<>0,CKSP)=1 AND 上下XD=1; 首訊空:=SUM(上下XD<>0,CKSP)=1 AND 上下XD=-1; 首訊:IF(首訊多,1,IF(首訊空,-1,0)),COLOR000000;
VERTLINE(首訊<>0 AND 首訊多),COLORRED;
VERTLINE(首訊<>0 AND 首訊空),COLORBLUE,LINEDOT;
預F空守:LLV(L,BARSLAST(首訊空))+出場RG參數1,COLORBLUE;
預F多守:HHV(H,BARSLAST(首訊多))-出場RG參數1,COLORRED;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
POWER:=C,COLOR000000,LINETHICK2;
HH:=H; LL:=L; BL_DBCK:=BARSLAST(DBCK);
ZAry:=BL_DBCK*0; 出場RG參數2:=ZAry+出場RG參數1; //XXX請帶入常數或數列
ST:=lbound(BL_DBCK); RSP:=BL_DBCK[ST]; Now多空:=0;
F空守:LL[ST-RSP]+出場RG參數2[ST-RSP],COLORBLUE,LINETHICK1;
F多守:HH[ST-RSP]-出場RG參數2[ST-RSP],COLORRED,LINETHICK1;
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000,LINETHICK2;
for i= ST+1 to datacount do begin
多空[i]:=Now多空; RSP:=BL_DBCK[i];
if Now多空=0 then begin //初始
多空[i]:=(POWER[i]>F空守 and POWER[i-1]<=F空守)-(F多守>POWER[i] and F多守<=POWER[i-1]);
if 多空[i]<>0 then 籌守[i]:=POWER[i]-多空[i]*出場RG參數2[i];
end else if Now多空=1 then begin //多方
籌守[i]:=max(POWER[i]-出場RG參數2[i],籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=POWER[i]+出場RG參數2[i];
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(POWER[i]+出場RG參數2[i],籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=POWER[i]-出場RG參數2[i];
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
KLINE(O,H,L,C,0);
重新貼上公式,加上要添加的部分(總版主指導部分僅有更改為自己容易記憶的變數名稱)!
因為會有全部時間都沒有訊號的狀況!
所以請總版主幫我更改規則為===
1,第一個多空<>0的訊號早於首訊<>0訊號,則沿用原本的'F空守'與'F多守'!
2,首訊<>0的訊號早於第一個多空<>0訊號,則改用'預F空守'或'預F多守'!直到多空<>0的訊號發生(指得是突破'預F空守'或是跌破'預F多守'),就回到原本'F空守'與'F多守'的規則!
不知有無邏輯疏漏,規則衝突之情況,還請總版主指正,感謝總版主的協助,並祝周休愉快!
將
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000,LINETHICK2;
for i= ST+1 to datacount do begin
多空[i]:=Now多空; RSP:=BL_DBCK[i];
if Now多空=0 then begin //初始
多空[i]:=(POWER[i]>F空守 and POWER[i-1]<=F空守)-(F多守>POWER[i] and F多守<=POWER[i-1]);
if 多空[i]<>0 then 籌守[i]:=POWER[i]-多空[i]*出場RG參數2[i];
改為
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000,LINETHICK2;
首訊SP:=BARSSINCE(首訊);
if lbound(首訊SP)>0 then 首訊PP:=datacount-首訊SP[datacount]; else 首訊PP:=datacount+1;
for i= ST+1 to datacount do begin
多空[i]:=Now多空; RSP:=BL_DBCK[i];
if Now多空=0 then begin //初始
if i>=首訊PP then 多空[i]:=(POWER[i]>預F空守[i] and POWER[i-1]<=預F空守[i])-(預F多守[i]>POWER[i] and 預F多守[i]<=POWER[i-1]);
if i<首訊PP then 多空[i]:=(POWER[i]>F空守 and POWER[i-1]<=F空守)-(F多守>POWER[i] and F多守<=POWER[i-1]);
if 多空[i]<>0 then 籌守[i]:=POWER[i]-多空[i]*出場RG參數2[i];
|
|
向版主報告此篇 |  |
|
2024-09-27 12:13 |
|
|
|  |
 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1501 |
對不起!我認真看了,可是內容有點超出我的能力,再仔細想想自己有些畫蛇添足,我另開新主題!
謝謝!
|
|
向版主報告此篇 |  |
|
2024-09-27 21:09 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|