2015年7月1日 星期三

開發商品的交易系統 - 基礎篇 [44]

EasyTrader ArtNo 270
壓力線又稱為阻力線,是圖形分析的重要方法,是指當股價上漲到某價位附近時,股價會停止上漲,甚至回落,這是因為空方在此拋出造成的。壓力線起阻止股價繼續上升的作用,這個起著阻止或暫時阻止股價繼續上升的價值就是壓力線所在的位置。
從供求關係的角度看,“阻力”代表了集中的供給,股市上供求關係的變化。
股價由下向上突破壓力線,若成交量配合放大,說明壓力線被有效突破,行情將由下降趨勢轉換為上升趨勢。一般地說,在下降大趨勢中,出現中級上升趨勢之後,如若行情突破中級上升趨勢的壓力線,則說明下降大趨勢已結束;在中級下降趨勢中,出現次級上升趨勢後,如若行情突破次級上升趨勢的壓力線,則說明中級下降趨勢已結束,將依原上升大趨勢繼續上行。
支撐線又稱為抵抗線,是圖形分析的重要方法,是指當股價跌到某個價位附近時,股價停止下跌,甚至有可能還有回升,這是因為多方在此買入造成的。從供求關係的角度看,“支撐”代表了集中的需求,股市上供求關係的變化。股價由上向下跌破支撐線,說明行情將由上升趨勢轉換為下降趨勢。一般地說,在上升大趨勢中,出現中級下降趨勢,如若行情跌破中級下降趨勢的支撐線,則說明上升大趨勢已結束;在中級上升趨勢中,出現次級下降趨勢,如若行情跌破次級下降趨勢的支撐線,則說明中級上升趨勢已結束,股價將依原下降大趨勢繼續下行。
資料參考 MBA智庫
{指標程式碼}
Inputs: Price(Close),Length(10);
Vars: AvgVal(0),ATRVal(0),Supp(0),Res(0),ResFlag(False),SuppFlag(False),LOrder(0),SOrder(0);
Vars:SuppCond01(false),SuppCond02(false),ResCond01(false),ResCond02(false) ;

AvgVal = Average(Price, Length);

ResCond01 = Res <> 0;
SuppCond01 = Supp <> 0;
ResCond02 = Close Cross Under AvgVal;
SuppCond02 = Close Cross Over AvgVal;

{Entry Setup}
If ResCond01 AND ResCond02 Then Begin { 當收盤價下穿均線 }
If ResFlag Then Begin
LOrder = Res;  { 以目前最高價,建立壓力線 }
ResFlag = False;
End;
SuppFlag = True;
Supp = Low; { 支撐線初始值設定 }
End;

If SuppCond01 AND SuppCond02 Then Begin { 當收盤價上穿均線 }
If SuppFlag Then Begin
SOrder = Supp; { 以目前最低價,建立支撐線 }
SuppFlag = False;
End;
ResFlag = True;
Res = High; { 壓力線初始值設定 }
End;

If Close > AvgVal Then Begin { 如果收盤價持續大於均線且創新高時 ,以新高價為壓力線 }
If High >= Res Then Res = High;
End;

If Close < AvgVal Then Begin  { 如果收盤價持續小於均線且創新低時 ,以新低價為支撐線 }
If Low <= Supp Then Supp = Low;
End;

Plot1(Res,"Res") ;
Plot2(Supp,"Supp") ;



{系統參數與變數}
input:ExitType(0);
inputs:NBarL(12),NBarS(10),TradeProfit(0.04),TradeStopLoss(0.025),ATRs_L(2.75),ATRs_S(3.5);
vars: IsBalanceDay(False),MP(0),PF(0),PL(0);

inputs: Length(4),LenS(8),HighBar(1),LowBar(1);
Vars: Price(Close),AvgVal(0), ATRVal(0), Supp(0), Res(0);
vars: ResFlag(False), SuppFlag(False), LOrder(0), SOrder(0),AvgValS(0);
vars: ResCond01(false),ResCond02(false),SuppCond01(false),SuppCond02(false) ;

MP = MarketPosition ;

if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;

PF = AvgPrice*TradeProfit ;
PL = AvgPrice*TradeStopLoss ;

AvgVal = Average(AvgPrice, Length);
AvgValS = Average(AvgPrice, LenS);

ResCond01 = Res <> 0;
SuppCond01 = Supp <> 0;
{ 多空各自參考不同的均線 }
ResCond02 = Close Cross under AvgVal;
SuppCond02 = Close Cross over AvgValS;

{ 壓力線 & 支撐線計算 }
If ResCond01 AND ResCond02 Then Begin
If ResFlag Then Begin
LOrder = Res;
ResFlag = False;
End;
SuppFlag = True;
Supp = Low;
End;

If SuppCond01 AND SuppCond02 Then Begin
If SuppFlag Then Begin
SOrder = Supp;
SuppFlag = False;
End;
ResFlag = True;
Res = High;
End;

If Close > AvgVal Then Begin
If High >= Res Then Res = High;
End;

If Close < AvgValS Then Begin
If Low <= Supp Then Supp = Low;
End;

{ 作多邏輯 - 當收盤價小於壓力線時 ,下根K棒突破壓力線 + 真實區間比例值進場 }
If MP <> 1 and Close < LOrder Then Buy Next Bar at LOrder +AvgTrueRange(HighBar)*Atrs_L Stop;

{ 作空邏輯 - 當收盤價大於支撐線時 ,下根K棒跌破支撐線 - 真實區間比例值進場 }
If MP <> -1 and Close > SOrder Then Sell Next Bar at SOrder -AvgTrueRange(LowBar)*Atrs_S Stop;

if ExitType = 1 then SetStopLoss(PL * BigPointValue) ;

if ExitType = 2 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
end;

if ExitType = 3 then Begin
if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;
end;

if ExitType = 4 then Begin
SetStopLoss(PL * BigPointValue) ;
setProfitTarget(PF * BigPointValue) ;
if MP > 0 and BarsSinceEntry = NBarL then {Sell } ExitLong next bar at Market ;
if MP < 0 and BarsSinceEntry = NBarS then {Buy} ExitShort next bar at Market ;
end;

if IsBalanceDay or date = 1150224 then setExitonClose ;

台指期 30 min K 多空留倉 交易週期 2005/2/1~ 2015/1/31 交易成本 1200


結論:建立支撐與壓力的方式有很多方式,例如 CDP、PIVOT 關鍵K棒 成交巨量本篇則是利用收盤價穿越均線所表示的短期趨勢方向改變來建立所需的指標並依此作為進出場依據績效表現也還不錯!
MagicQS178

4 則留言: