2009/10/26

程式交易全攻略 - P.152 移動停損程式修正

程式交易全攻略 - P.152 移動停損程式修正
Post By: D.K. at 21:34
funp_genButton("http://ssdkchang.blogspot.com/2009/10/p152.html",1);
之前已經有提到過移動停損點的作法了…請參考這兩篇文章:
程式交易 - 移動停損點作法程式交易 - 移動停損點、進場方法
這邊就再另外把書裡的程式錯誤地方修正一下。

這邊的例子是進場後設 20 點為停損點…當獲利大於 50 點時…將停損移動到買進價上 20 點。vars:exitCount(0), mc(0);
if date <> date[1] thenexitCount = 0;
mc = marketposition * currentcontracts;if marketposition > 0 then
exitlong next bar at entryprice(0) - 20 stop;

if marketposition < 0 thenexitshort next bar at entryprice(0) + 20 stop;
if marketposition > 0 and high > entryprice(0) + 50 thenexitCount = 1;
if marketposition < 0 and low < entryprice(0) - 50 thenexitCount = 1;
if marketposition > 0 and exitCount = 1 thenexitlong next bar at entryprice(0) + 20 stop;
if marketposition < 0 and exitCount = 1 thenexitshort next bar at entryprice(0) - 20 stop;
if mc <> mc[1] thenexitCount = 0;

這個程式裡面用到了兩個變數…一個是 exitCount 另一個是 mc,
exitCount 的作用是拿來記錄目前是否有獲利大於 50 點…
當有獲利大於 50 點的時候就把這個變數更改為 1,
另一個 mc 變數則是拿來記錄目前的倉位。

基本上我自己在寫程式的時候有很多變數是很常會運用到的…首先就是 mc ,
這個變數可以記錄倉位的變化,直接使用 marketposition 只可以知道目前的倉位…
但是沒辦法知道上一根的倉位是怎麼樣。所以就利用一個變數來記錄。
接下來就是很簡單的出場語法了…
有單的時候就是在進場價虧損 20 點的時候觸價出場。
如果有單的時候而且 exitCount = 1 就在進場價獲利 20 點的時候出場。
提供給大家作參考…也很抱歉在校稿的時候乎略了這一部份。

沒有留言: