XS第6堂課筆記-技術分析與進場點

Michael Fang
3 min readFeb 1, 2019

--

KD黃金/死亡交叉

stochastic(9,3,3,value1,value2,value3);
condition1=value2 cross over value3;
condition2=value2 cross under value3;
if condition1 then plot1(c,”KD黃金交叉”);//設為點,低點
if condition2 then plot2(c,”KD死亡交叉”);//設為點,高點
//V6.43可換成圖片

關鍵價運用

發生事件,紀錄價格…
以前一波高點為關鍵價(SAR為例)
value1=SAR(0.02,0.02,0.2);
condition1=c>value1;
if condition1 then
begin
if not condition1[1] then
begin
value3=value2; //記錄前波高點
value2=H;
end;
if H>value2 then value2=H;
end;
plot1(value2);

爆量日為收盤價…

MACD與股價背離…
//
股價創新高,但MACD OSC柱狀沒創新高
value1=MACD(weightedclose,12,26,9,value1,value2,value3);
condition1=value3>0;//OSC 在0軸以上
if condition1 then
begin
if not condition1[1] then
begin
value5=value4; //記錄前波高點
value4=value3;
value7=value6; //前次創新高價格
end;
if value3>value4 then begin
value4=value3;
value6=H;//創新高時的最高價
end;
end;
condition2=value3 cross under 0;//osc 由正轉負
if condition2 then
begin
if (value4-value5)* (value6-value7)<0 //股價與OSC背離
plot10(value3); //股價創新高 MACD背離
end;

plot1(value4);//OSC高點
plot2(value5);//OSC前高
plot3(value3);//OSC
plot4(value6);//創新高的價格
plot5(value7);//前一次創新高

股價創新高 MACD背離

進場與出場

KD黃金交叉與死亡交叉:進出場

stochastic(9,3,3,value1,value2,value3);
MACD(weightedclose,12,26,9,value4,value5,value6);
condition1=value2 cross over value3;
condition2=value2 cross under value3;
if condition1 then plot1(c,”KD黃金交叉”);
if condition2 then plot2(c,”KD死亡交叉”);
//進出成對出現

OSC向下收縮進場,KD死亡交叉出場

需控制是否進出場marketposition

variable:mkp(0);//marketposition
stochastic(9,3,3,value1,value2,value3);
MACD(weightedclose,12,26,9,value4,value5,value6);
condition1=value2 cross over value3;
condition2=value2 cross under value3;
condition3=value6 cross over 0;//osc 負轉正

if mkp=0 and condition3[1] then //收K後才進場,上一根符合
begin
mkp=1;
plot3(c,”OSC轉紅”);
end;

if mkp=1 and condition2[1] then //收K後才進場,上一根符合
begin
mkp=0;
plot2(c,”KD死亡交叉”);
end;

部位控制

以變數紀錄買賣部位
雙策略進場,單策略出場(KD,MACD,SAR)
排除當根就進出

variable:mkp1(0),mkp2(0);//marketposition
stochastic(9,3,3,value1,value2,value3);
MACD(weightedclose,12,26,9,value4,value5,value6);
value7=sar(0.02,0.02,0.2);
condition1=value6 cross over 0; //進場:osc 負轉正
condition2=value2 cross over value3; //進場:KD交叉
condition3=c cross under value7;//sar 翻轉向下
if (mkp1=0 and condition1) or (mkp2=0 and condition2) then
begin
if condition1 then
begin
mkp1=1;
plot1(c,”OSC轉紅”);
end;

if condition2 then
begin
mkp2=1;
plot2(c,”KD黃金交叉”);
end;

end
//排除同一根進場又出場
else if condition3 and (mkp1+mkp2)>0 then
begin
mkp1=0;
mkp2=0;
plot3(c,”SAR出場”);
end;

盤整操作: 布林過高:空,布林過低:買
順勢操作,逆勢切入

買進成本

變數紀錄買進成本
延遲訊號紀錄成本(下一根開盤價為進場價位)

出場價位

停損線,停利線
即時停損停利,收盤停損停利
關鍵價位停損停利

variable:mkp1(0),mkp2(0);//marketposition
variable:bp(0);//買進成本
variable:sp(0),sl(0);//停損停利
stochastic(9,3,3,value1,value2,value3);
MACD(weightedclose,12,26,9,value4,value5,value6);
value7=sar(0.02,0.02,0.2);
condition1=value6 crosses over 0; //進場:osc 負轉正
condition3=c crosses under value7;//sar 翻轉向下
if (mkp1=0 and condition1[1]) then
begin
plot1(c,”OSC轉紅”);
mkp1=1;
bp=O;//開盤價為進場價
//停利5%,停損3%
sp=bp*1.05;
sl=bp*0.97;
plot8(o);//進出場相連MC
end
//下一根才出場
//else if (condition3[1] or condition4[1] or condition5[1]) and (mkp1)>0 then
//即時停損當根,盤中摸到就會出場
else if (condition3[1] or H>sp or l<sl) and (mkp1)>0 then
begin
mkp1=0;
if condition3[1] then plot3(c,”SAR出場”)
//下一根停利
//else if condition4[1] then plot6(c,”停利出場”)
//else if condition5[1] then plot7(c,”停損出場”);
//盤中即時停利
else if H>sp then plot6(c,”停利出場”)
else if l<sl then plot7(c,”停損出場”);
plot8(o);//進出場相連MC
end;

//condition4=c>sp;//停利 改用即時
//condition5=c<sl;//停損

//if mkp1=1 then begin //不管獲利 就移動
if mkp1=1 and c>bp*1.02 then begin //獲利2%才移動
if h*0.97>sl then sl=h*0.97; //高點回檔3%,停損線不斷墊高
end;

plot2(bp,”成本”);
plot4(sl,”停損”);//固定停損,非移動,風險控制
plot5(sp,”停利”);//停利很多方式

選擇性停損

若事件發生提早出場 (e.g SAR)
若事件發生虧損未達停損則出場(e.g or SAR)
若事件發生則不停損(and NOT),e.g 要出場時,KD黃金交叉

簡單回檔停利

利用回檔出場
確認最少獲利點數

//if mkp1=1 then begin //不管獲利 就移動
if mkp1=1 and c>bp*1.02 then begin //獲利2%才移動
if h*0.97>sl then sl=h*0.97; //高點回檔3%
end;

換日處理

換日清部位
期貨電子盤換日
換日事件(CDP ,每日前N根K棒)

//一般換日
if date<>date[1] then

//出場時間,比13:25提早一點出場
if time>132000 and mkp1>0 then

//電子盤換日
value1=getfielddate(“開盤委買”,”D”);
if value1<>value1[1] then //換日

Unlisted

--

--