|
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1439 |
[問題]以前蒙總版主協助之公式再請協助
分鐘首K:=ISREGULARFBAR;
換日首K:=TRADEDATE<>REF(TRADEDATE,1);
歷史首K:=BARPOS=1;
DBCK:=IF((DATATYPE=1 OR DATATYPE=12) AND STKLABEL='FITX1+',TIME=084600 OR TIME=150100,IF(DATATYPE=1 OR DATATYPE=11 OR DATATYPE=2,分鐘首K OR 換日首K,歷史首K)),LINETHICK;
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
外盤:=STKINDI('','新盤差引用.外盤(0)',0,0),COLORRED,LINETHICK0;
內盤:=STKINDI('','新盤差引用.內盤(1)',0,0),COLORBLUE,LINETHICK0;
POWER:(外盤-內盤),COLOR000000,LINETHICK2;
NN:=300; Now多空:=0;
ZAry:=POWER*0; ST:=lbound(ZAry);
F多守:=POWER[ST]-NN; F空守:=POWER[ST]+NN;
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000;
for i= ST+1 to datacount do begin
多空[i]:=Now多空;
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]*NN;
end else if Now多空=1 then begin //多方
籌守[i]:=max(POWER[i]-NN,籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=POWER[i]+NN;
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(POWER[i]+NN,籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=POWER[i]-NN;
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
VERTLINE(破過=1),COLORRED;
VERTLINE(破過=-1),COLORBLUE,LINEDOT;
PARTLINE(多空=0,F多守) COLORBLUE,LINEDOT;
PARTLINE(多空=0,F空守) COLORRED,LINEDOT;
PARTLINE(sum(多空<>0,2)=2,籌守) COLOR000000,LINEDOT;
1,以上公式中的常數NN可否是數列?
|
|
向版主報告此篇 | |
|
2024-02-05 21:57 |
|
|
| |
|
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1439 |
附圖是將'盤差'改為'收盤價'帶入!
以下是源碼!
分鐘首K:=ISREGULARFBAR;
換日首K:=TRADEDATE<>REF(TRADEDATE,1);
歷史首K:=BARPOS=1;
DBCK:=IF((DATATYPE=1 OR DATATYPE=12) AND STKLABEL='FITX1+',TIME=084600 OR TIME=150100,IF(DATATYPE=1 OR DATATYPE=11 OR DATATYPE=2,分鐘首K OR 換日首K,歷史首K)),LINETHICK;
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
//CKMM13:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=13,CKSP,13),13),LINETHICK;
//CKMM13RG:MA(H-L,CKMM13),LINETHICK;
POWER:C,COLOR000000,LINETHICK2;
NN:=30; Now多空:=0;
ZAry:=POWER*0; ST:=lbound(ZAry);
F多守:=POWER[ST]-NN; F空守:=POWER[ST]+NN;
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000;
for i= ST+1 to datacount do begin
多空[i]:=Now多空;
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]*NN;
end else if Now多空=1 then begin //多方
籌守[i]:=max(POWER[i]-NN,籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=POWER[i]+NN;
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(POWER[i]+NN,籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=POWER[i]-NN;
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
VERTLINE(破過=1),COLORRED;
VERTLINE(破過=-1),COLORBLUE,LINEDOT;
PARTLINE(多空=0,F多守) COLORBLUE,LINEDOT;
PARTLINE(多空=0,F空守) COLORRED,LINEDOT;
PARTLINE(sum(多空<>0,2)=2,籌守) COLOR000000,LINEDOT;
PARTLINE(多空=0,REF(L+NN,BARSLAST(DBCK))) COLOR00FF00,LINETHICK2;
PARTLINE(多空=0,REF(H-NN,BARSLAST(DBCK))) COLORFF00FF,LINETHICK2;
想請總版主幫忙:
1,NN可以是常數或是數列!
2,將F空守改為REF(L+NN,BARSLAST(DBCK));
F多守改為REF(H-NN,BARSLAST(DBCK));
不知邏輯有無錯誤之處?實際是否可行?
請協助!謝謝!
Markchu7 附帶上了此圖片:
|
最後由 Markchu7 在 2024-02-05 22:15 編輯 |
向版主報告此篇 | |
|
2024-02-05 22:11 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17629 |
回覆: [問題]以前蒙總版主協助之公式再請協助
引用: 最初由 Markchu7 發表
分鐘首K:=ISREGULARFBAR;
換日首K:=TRADEDATE<>REF(TRADEDATE,1);
歷史首K:=BARPOS=1;
DBCK:=IF((DATATYPE=1 OR DATATYPE=12) AND STKLABEL='FITX1+',TIME=084600 OR TIME=150100,IF(DATATYPE=1 OR DATATYPE=11 OR DATATYPE=2,分鐘首K OR 換日首K,歷史首K)),LINETHICK;
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
外盤:=STKINDI('','新盤差引用.外盤(0)',0,0),COLORRED,LINETHICK0;
內盤:=STKINDI('','新盤差引用.內盤(1)',0,0),COLORBLUE,LINETHICK0;
POWER:(外盤-內盤),COLOR000000,LINETHICK2;
NN:=300; Now多空:=0;
ZAry:=POWER*0; ST:=lbound(ZAry);
F多守:=POWER[ST]-NN; F空守:=POWER[ST]+NN;
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000;
for i= ST+1 to datacount do begin
多空[i]:=Now多空;
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]*NN;
end else if Now多空=1 then begin //多方
籌守[i]:=max(POWER[i]-NN,籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=POWER[i]+NN;
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(POWER[i]+NN,籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=POWER[i]-NN;
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
VERTLINE(破過=1),COLORRED;
VERTLINE(破過=-1),COLORBLUE,LINEDOT;
PARTLINE(多空=0,F多守) COLORBLUE,LINEDOT;
PARTLINE(多空=0,F空守) COLORRED,LINEDOT;
PARTLINE(sum(多空<>0,2)=2,籌守) COLOR000000,LINEDOT;
1,以上公式中的常數NN可否是數列?
將 NN:=300;
改為 NN:=XXX; //其中XXX為您欲帶入的數列
F多守:=POWER[ST]-NN; F空守:=POWER[ST]+NN;
改
F多守:=POWER[ST]-NN[ST]; F空守:=POWER[ST]+NN[ST];
其餘 NN
改為 NN[i]
|
|
向版主報告此篇 | |
|
2024-02-06 09:09 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17629 |
引用: 最初由 Markchu7 發表
附圖是將'盤差'改為'收盤價'帶入!
以下是源碼!
分鐘首K:=ISREGULARFBAR;
換日首K:=TRADEDATE<>REF(TRADEDATE,1);
歷史首K:=BARPOS=1;
DBCK:=IF((DATATYPE=1 OR DATATYPE=12) AND STKLABEL='FITX1+',TIME=084600 OR TIME=150100,IF(DATATYPE=1 OR DATATYPE=11 OR DATATYPE=2,分鐘首K OR 換日首K,歷史首K)),LINETHICK;
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
//CKMM13:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=13,CKSP,13),13),LINETHICK;
//CKMM13RG:MA(H-L,CKMM13),LINETHICK;
POWER:C,COLOR000000,LINETHICK2;
NN:=30; Now多空:=0;
ZAry:=POWER*0; ST:=lbound(ZAry);
F多守:=POWER[ST]-NN; F空守:=POWER[ST]+NN;
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000;
for i= ST+1 to datacount do begin
多空[i]:=Now多空;
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]*NN;
end else if Now多空=1 then begin //多方
籌守[i]:=max(POWER[i]-NN,籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=POWER[i]+NN;
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(POWER[i]+NN,籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=POWER[i]-NN;
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
VERTLINE(破過=1),COLORRED;
VERTLINE(破過=-1),COLORBLUE,LINEDOT;
PARTLINE(多空=0,F多守) COLORBLUE,LINEDOT;
PARTLINE(多空=0,F空守) COLORRED,LINEDOT;
PARTLINE(sum(多空<>0,2)=2,籌守) COLOR000000,LINEDOT;
PARTLINE(多空=0,REF(L+NN,BARSLAST(DBCK))) COLOR00FF00,LINETHICK2;
PARTLINE(多空=0,REF(H-NN,BARSLAST(DBCK))) COLORFF00FF,LINETHICK2;
想請總版主幫忙:
1,NN可以是常數或是數列!
2,將F空守改為REF(L+NN,BARSLAST(DBCK));
F多守改為REF(H-NN,BARSLAST(DBCK));
不知邏輯有無錯誤之處?實際是否可行?
請協助!謝謝!
原碼: 分鐘首K:=ISREGULARFBAR;
換日首K:=TRADEDATE<>REF(TRADEDATE,1);
歷史首K:=BARPOS=1;
DBCK:=IF((DATATYPE=1 OR DATATYPE=12) AND STKLABEL='FITX1+',TIME=084600 OR TIME=150100,IF(DATATYPE=1 OR DATATYPE=11 OR DATATYPE=2,分鐘首K OR 換日首K,歷史首K)),LINETHICK;
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
//CKMM13:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=13,CKSP,13),13),LINETHICK;
//CKMM13RG:MA(H-L,CKMM13),LINETHICK;
POWER:C,COLOR000000,LINETHICK2;
HH:=H; LL:=L; DBCKSP:=BARSLAST(DBCK);
ZAry:=DBCKSP*0; NN:=ZAry+XXX; //XXX請帶入常數或數列
ST:=lbound(DBCKSP); RSP:=DBCKSP[ST]; Now多空:=0;
F空守:=LL[ST-RSP]+NN[ST-RSP];
F多守:=HH[ST-RSP]-NN[ST-RSP];
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000;
for i= ST+1 to datacount do begin
多空[i]:=Now多空; RSP:=DBCKSP[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]=1 then 籌守[i]:=HH[i-RSP]-NN[i-RSP];
if 多空[i]=-1 then 籌守[i]:=LL[i-RSP]+NN[i-RSP];
end else if Now多空=1 then begin //多方
籌守[i]:=max(HH[i-RSP]-NN[i-RSP],籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=LL[i-RSP]+NN[i-RSP];
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(LL[i-RSP]+NN[i-RSP],籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=HH[i-RSP]-NN[i-RSP];
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
VERTLINE(破過=1),COLORRED;
VERTLINE(破過=-1),COLORBLUE,LINEDOT;
PARTLINE(多空=0,F多守) COLORBLUE,LINEDOT;
PARTLINE(多空=0,F空守) COLORRED,LINEDOT;
PARTLINE(sum(多空<>0,2)=2,籌守) COLOR000000,LINEDOT;
PARTLINE(多空=0,REF(L+NN,DBCKSP)) COLOR00FF00,LINETHICK2;
PARTLINE(多空=0,REF(H-NN,DBCKSP)) COLORFF00FF,LINETHICK2;
|
|
向版主報告此篇 | |
|
2024-02-06 09:44 |
|
|
| |
|
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1439 |
感謝總版主協助!
祝奇狐團隊新春愉快,業績蒸蒸日上!
|
|
向版主報告此篇 | |
|
2024-02-06 09:47 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17629 |
引用: 最初由 Markchu7 發表
0849已跌破F多守,所以多空=-1,
而籌守則應為18006
只有第一次的'過或破'是以H,L來決定
之後的'過或破'都是以C來決定
粗線條就是個人希望得到的劃線效果!
原碼: 分鐘首K:=ISREGULARFBAR;
換日首K:=TRADEDATE<>REF(TRADEDATE,1);
歷史首K:=BARPOS=1;
DBCK:=IF((DATATYPE=1 OR DATATYPE=12) AND STKLABEL='FITX1+',TIME=084600 OR TIME=150100,IF(DATATYPE=1 OR DATATYPE=11 OR DATATYPE=2,分鐘首K OR 換日首K,歷史首K)),LINETHICK;
CKSP:=BARSLAST(DBCK)+1,LINETHICK;
//CKMM13:=IF(DATATYPE=12 OR DATATYPE=11 OR DATATYPE=1 OR DATATYPE=2,IF(CKSP<=13,CKSP,13),13),LINETHICK;
//CKMM13RG:MA(H-L,CKMM13),LINETHICK;
POWER:C,COLOR000000,LINETHICK2;
HH:=H; LL:=L; DBCKSP:=BARSLAST(DBCK);
ZAry:=DBCKSP*0; NN:=ZAry+XXX; //XXX請帶入常數或數列
ST:=lbound(DBCKSP); RSP:=DBCKSP[ST]; Now多空:=0;
F空守:=LL[ST-RSP]+NN[ST-RSP];
F多守:=HH[ST-RSP]-NN[ST-RSP];
多空:ZAry linethick;
籌守:ZAry linethick COLOR000000;
for i= ST+1 to datacount do begin
多空[i]:=Now多空; RSP:=DBCKSP[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]*NN[i];
end else if Now多空=1 then begin //多方
籌守[i]:=max(POWER[i]-NN[i],籌守[i-1]);
if POWER[i]<籌守[i] and POWER[i-1]>=籌守[i-1] then begin //多轉空
多空[i]:=-1; 籌守[i]:=POWER[i]+NN[i];
end;
end else if Now多空=-1 then begin //空方
籌守[i]:=min(POWER[i]+NN[i],籌守[i-1]);
if POWER[i]>籌守[i] and POWER[i-1]<=籌守[i-1] then begin //空轉多
多空[i]:=1; 籌守[i]:=POWER[i]-NN[i];
end;
end;
Now多空:=多空[i];
end;
破過:=(ref(多空,1)<>多空)*多空;
VERTLINE(破過=1),COLORRED;
VERTLINE(破過=-1),COLORBLUE,LINEDOT;
PARTLINE(多空=0,F多守) COLORBLUE,LINEDOT;
PARTLINE(多空=0,F空守) COLORRED,LINEDOT;
PARTLINE(sum(多空<>0,2)=2,籌守) COLOR000000,LINEDOT;
PARTLINE(多空=0,REF(L+NN,DBCKSP)) COLOR00FF00,LINETHICK2;
PARTLINE(多空=0,REF(H-NN,DBCKSP)) COLORFF00FF,LINETHICK2;
|
|
向版主報告此篇 | |
|
2024-02-06 11:04 |
|
|
| |
|
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1439 |
研究出來了!如下
DRAWLINE(多空=0 AND REFX(多空,1)<>0,F空守,SUM(多空<>0,CKSP)=1,籌守,0),COLOR000000,LINETHICK3,PXDN6;
DRAWLINE(多空=0 AND REFX(多空,1)<>0,F多守,SUM(多空<>0,CKSP)=1,籌守,0),COLOR000000,LINETHICK3,PXDN6;
請問總版主:有關條件之公式寫法有無更精簡的寫法?
謝謝!
|
|
向版主報告此篇 | |
|
2024-02-06 18:42 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17629 |
引用: 最初由 Markchu7 發表
研究出來了!如下
DRAWLINE(多空=0 AND REFX(多空,1)<>0,F空守,SUM(多空<>0,CKSP)=1,籌守,0),COLOR000000,LINETHICK3,PXDN6;
DRAWLINE(多空=0 AND REFX(多空,1)<>0,F多守,SUM(多空<>0,CKSP)=1,籌守,0),COLOR000000,LINETHICK3,PXDN6;
請問總版主:有關條件之公式寫法有無更精簡的寫法?
謝謝!
單就此例目前的狀況而言,可簡化為:
DRAWLINE(多空=0,F空守,多空<>0,籌守,0),COLOR000000,LINETHICK3,PXDN6;
DRAWLINE(多空=0,F多守,多空<>0,籌守,0),COLOR000000,LINETHICK3,PXDN6;
|
|
向版主報告此篇 | |
|
2024-02-07 00:11 |
|
|
| |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|