2014年2月12日 星期三

★單策略多商品的固定停損語法(程式碼)

     越來越多人開始往外期發展是好事,但切入後才會發現策略語法都要有所修正,首先你會發現寫一個策略,要去測試不同的市場,每次換一個市場,策略的固定停損點語法都要重新寫一次,因為每個市場的最小跳動單位不同,每點的價值也不一樣,如果單純是使用SetStopLoss語法,可能在測試多市場時會有點辛苦。

以台指期為例,如果設定30點停損的話,語法可以簡單用Setstoploss(200*30)表示,其中200是每大點的價值,台指期的最小跳動單位剛好就是1點,指數跳動30次,剛好就是30點。但是如果換成交易E-mini S&P期貨的話,最小跳動單位是0.25點,而每一跳動相當於價值12.5美元,如果是跳動30次停損的話,就要改寫成Setstoploss(12.5*30),每個商品都不一樣,如果要改的話會很麻煩。在這裡提供一小段程式碼,幫助你寫固定點停損:

多單停損:
if marketposition>0 then sell next bar at entryprice(0)-(1/pricescale)*minmove*跳動 stop;

空單停損:
if marketposition>0 then sell next bar at entryprice(0)-(1/pricescale)*minmove*跳動 stop;

其中pricescale指的是刻度的設定,而minmove為最小跳動量,把pricescale的倒數與minmove相乘,就可以得到最小跳動的單位。在此你可以把「跳動」這個數值參數化,這樣子就可以簡單應用到多商品了。

以ES為例:

(1) 首先你必須先確認你的商品設定,以ES指數為例,價格作標為1/100,其Pricescale這個數值就是100,而最小跳動點(Minmove)為25。
(2) 把pricescale的倒數乘上Minmove,(1/100)×25=0.25,所以ES這個指數的每一個跳動,在圖面上顯示的值為0.25,而圖中每大點金額設定為50元,因此每一個跳動相當於0.25×50=12.5元。



1 留言:

匿名 提到...

"空單"停損:
if marketposition>0 then sell next bar at entryprice(0)-(1/pricescale)*minmove*跳動 stop;
似乎有錯.請版主再看一下

張貼留言

如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!

----------------------------------------------------------------------------------------------------
網站聲明(Disclaimer)
本教學網站內所提供之程式碼(包括函數、指標、訊號)屬開放程式碼,用意在於讓使用者學習程式語法之撰寫,使用者可以任意修改語法內容並調整參數。本網站所有之內容(包括文章、影片、歷史紀錄、程式碼、教材)限用於個人學習使用,請勿轉寄、濫用,嚴禁私自串接帳戶交易。
-------------------------------------------------------------------------------------------------