龙听期货论坛's Archiver






 微信: QQ:

龙听 发表于 2019-6-1 10:50

国外有名的凱特國王King Keltner交易系統[古期心得]

接下來的時間,想花一些時間跟大家來報告一些國外有名的交易系統。或許各位可以從這些系統裡面找到一些自己在開發系統的想法和靈感。我想就從很有名的一本書”Building Winning Trading Systems with TradeStation”裡面的交易系統開始報告起好了。





“Building Winning Trading Systems with TradeStation”是由George Pruitt & John Hill在2003年所寫的。這本算是TradeStation的教科書吧。因為這本書就是在教我們如何操作TradeStation和如何寫Easy Language的程式。同時裡面的第六章也列出了一些範例的交易系統。今天要報告的是裡面介紹的第一個系統,叫做凱特國王系統”King Keltner Trading Strategy”。





在交易系統設計的領域中,通道是常常被拿來使用的觀念之一。像是很有名的Bollinger Band就是採用通道的觀念所設計出來的系統。我們通常會先利用一條移動平均線來作為通道的中線,然後在這條移動平均線的上方加入一個數值,讓他變成上通道。然後在這條移動平均線的下方減去一個數值,讓他變成下通道。





而上下通道應該要加減多少數值,就各有巧妙不同了。最古老的方式是直接加減移動平均線的一個比率(比如說2%),這種系統就叫做envelop trading system。如果是加減2個標準差形成上下通道的話,這種系統就叫做Bollinger Band。而Chester Keltner在1960年提出的觀念,則是在這條移動平均線上加減Average True Range,形成上下通道。





Chester Keltner的這個系統,是要在價格突破上通道的時候做多,跌破下通道的時候做空。而George Pruitt & John Hill在這本書裡面,則改進了這個系統,加入了移動平均線出場的觀念,所以他們提的進出場的方式會變成下面這樣:





Setup:40天的移動平均線上揚只做多。40天的移動平均線下跌只做空。



Entry:價位突破上通道做多。價位跌破下通道做空。



Exit:當進場之後,等待價位回到移動平均線就出場。



觀念很簡單,程式碼也不複雜。書裡面的程式碼如下:





{King Keltner by George Pruitt—based on trading system presented by Chester Keltner}







Inputs: avgLength(40), atrLength(40);



Vars: upBand(0),dnBand(0),liquidPoint(0),movAvgVal(0);



movAvgVal = Average((High + Low + Close)/3,avgLength);



upBand = movAvgVal + AvgTrueRange(atrLength);



dnBand = movAvgVal - AvgTrueRange(atrLength);



if(movAvgVal > movAvgVal[1]) then Buy ("KKBuy") tomorrow at upBand stop;



if(movAvgVal < movAvgVal[1]) then Sell Short("KKSell") tomorrow at dnBand stop;



liquidPoint = movAvgVal;



If(MarketPosition = 1) then Sell tomorrow at liquidPoint stop;



If(MarketPosition = -1) then Buy To Cover tomorrow at liquidPoint stop;









而這個系統在 1982-2002年這20年的績效表現列出在下面這個表。
KK Performance.JPG

這個表在我看來,有一點特別引起我的興趣。就是績效表現特別好的商品就是日幣和天然氣這兩個商品。跟我這幾年的交易心得相同,看來容易操作的商品,用簡單的系統就可以得到很好的績效。







雖然King Keltner交易系統的概念很簡單,但是有一個小小的缺點,就是上下通道的寬度是固定的,也就是固定在一倍的ATR寬度。所以如果我們想要改用intraday資料來做交易的話,會想要試試看不同通道寬度,對於整體績效的影響。所以小弟在這裡做了個小小的修正,將我們可以試試看不同的通道寬度,也就是加入atrRatio這個參數。修改後的程式碼會變成是下面這樣:









Inputs: avgLength(40), atrLength(40),atrRatio(2);



Vars: upBand(0),dnBand(0),liquidPoint(0),movAvgVal(0);



movAvgVal = Average((High + Low + Close)/3,avgLength);



upBand = movAvgVal + atrRatio * AvgTrueRange(atrLength);



dnBand = movAvgVal - atrRatio * AvgTrueRange(atrLength);



if(movAvgVal > movAvgVal[1]) then Buy ("KKBuy") tomorrow at upBand stop;



if(movAvgVal < movAvgVal[1]) then Sell Short("KKSell") tomorrow at dnBand stop;



liquidPoint = movAvgVal;



If(MarketPosition = 1) then Sell tomorrow at liquidPoint stop;



If(MarketPosition = -1) then Buy To Cover tomorrow at liquidPoint stop;

龙听小虎 发表于 2023-11-2 22:45

{:48:}

页: [1]
渠道·推广(20年运营值得信赖!)▼:温馨提示:期货论坛稳定、流畅的访问体验有赖于赞助商的广告支持,赞助商业务内容非本站官方业务,期货、证券及外汇投资均有亏损的风险,访问赞助商广告即代表您已了解其中的风险。欢迎意向赞助商联系客服或管理员咨询相关事宜。
                     
❤️2025年通过期货论坛开户享受如下优惠政策:政策一:手续费最低交易所+1分起,政策二:日内炒单及大资金享更高比率返还,政策三:保证金可申请交易所标准+0,政策四:开户即享有论坛Prime会员资格(价值199元/年),开户咨询管理员或右侧客服! 😋欧美期货杂志购买、下载与中文翻译:/thread-10603-1-1.html |TB/MC开户优惠政策:/thread-5986-1-1.html2025年最新交易所手续费表:/thread-7537-1-1.htmlSC2.png2025年最新中文翻译:/thread-160355-1-1.html;
欧美期货程序化期刊中文翻译目录: 【1982/83.01-12期】 【1984.01-12期】 【1985.01-12期】 【1986.01-12期】 【1987.01-12期】 【1988.01-12期】 【1989.01-12期】 【1990.01-12期】 【1991.01-12期】 【1992.01-12期】 【1993.01-12期】 【1994.01-12期】 【1995.01-12期】 【1996.01-12期】 【1997.01-12期】 【1998.01-12期】 【1999.01-12期】 【2000.01-12期】 【2001.01-12期】 【2002.01-12期】 【2003.01-12期】 【2004.01-12期】 【2005.01-12期】 【2006.01-12期】 【2007.01-12期】 【2008.01-12期】 【2009.01-12期】 【2010.01-12期】 【2011.01-12期】 【2012.01-12期】 【2013.01-12期】 【2014.01-12期】正在更新中...... 【2015.01-12期】待补 【2016.01-12期】待补 【2017.01-12期】正在更新中...... 【2018.01-12期】 【2019.01-12期】 【2020.01-12期】 【2021.01-12期】 【2022.01-12期】 【2023.01-12期】 【2024.01-12期】 【2025.01-12期】正在更新中......