搜尋

搜尋結果

【如何用Trading View寫每天只交易一次的策略】
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2024-06-17

最記得以前有學員曾說過,他過去試過很多的交易策略,最後在實戰時的成績都不太好,然後「嬲嬲地」就每天只看到MACD的第一個訊號便入市,開市後見MACD的快線升穿慢線便買入,相反,若MACD的快線跌穿慢線便造淡,然後見MACD的快線繼續上升便平好倉,造淡時則見MACD的快線繼續下跌就平淡倉,就是這樣簡單 但效果反而比很多複雜的策略更好。 這個只是他的意見,最後成績如何他沒有告訴我,但筆者自己研究過很多的Daytrade策略也都是每天只交易一次的,因為交易次數太多,交易成本就會增加,而且長時間交易會覺得更亂,特別是遇上連續虧損的時候,而每天只交易一次就是讓自己有足夠時間冷靜下來。 不過,若要用pine script寫這類每天只交易一次的策略,又應怎樣寫 以下是一個很簡單運用Zero Lag MACD的交易策略,就是快線升穿慢線便買入,當買入後看到連續三支陰陽燭的時間內MACD的快線都在上升,那就平倉離場。 This Pine Scripttrade; code is subject to the terms of the Mozilla Public License 2.0 at httpsmozilla.orgMPL2.0 copy; markchunwaipaul @version=5 strategyquot;zero lag MACD交易例子quot;, margin_long=100, margin_short=100, initial_capital =1000,default_qty_type = strategy.percent_of_equity,default_qty_value = 100 SN=input12 LP=input26 M=input9 ema1=ta.emaclose,SN ema2=ta.emaema1,SN ema3=ta.emaclose,LP ema4=ta.emaema3,LP ZerolagMACDLine=2ema1ema22ema3ema4 ema5=ta.emaZerolagMACDLine,M ema6=ta.emaema5,M ZerolagSignalLine=2ema5ema6 Histogram=ZerolagMACDLineZerolagSignalLine var bool traded =false closeCond=ta.risingZerolagMACDLine,3 noposition=strategy.position_size==0 buyCond=ta.crossoverZerolagMACDLine,ZerolagSignalLine if buyCond and noposition strategy.entryquot;BUYquot;,strategy.long if closeCond and not noposition strategy.closequot;BUYquot; plotZerolagMACDLine,title=quot;MACDLinequot;,color=color.yellow ,linewidth=2 plotZerolagSignalLine,title=quot;SignalLinequot;,color=color.green,linewidth=2 plotHistogram, color=color.black, style=plot.style_histogram,linewidth=2 以上策略的Backtest report 可以看到這樣寫每天的交易次數肯定不只一次,交易了1023次,獲利交易只有514次,勝率約50.24%,一年的虧損約37.45%。 另以下是同一個策略但每日只交易一次的寫法 This Pine Scripttrade; code is subject to the terms of the Mozilla Public License 2.0 at httpsmozilla.orgMPL2.0 copy; markchunwaipaul @version=5 strategyquot;用zero lag MACD每日只交易一次例子quot;, margin_long=100, margin_short=100, initial_capital =1000,default_qty_type = strategy.percent_of_equity,default_qty_value = 100 SN=input12 LP=input26 M=input9 ema1=ta.emaclose,SN ema2=ta.emaema1,SN ema3=ta.emaclose,LP ema4=ta.emaema3,LP ZerolagMACDLine=2ema1ema22ema3ema4 ema5=ta.emaZerolagMACDLine,M ema6=ta.emaema5,M ZerolagSignalLine=2ema5ema6 Histogram=ZerolagMACDLineZerolagSignalLine var bool traded =false closeCond=ta.risingZerolagMACDLine,3 noposition=strategy.position_size==0 buyCond=ta.crossoverZerolagMACDLine,ZerolagSignalLine if buyCond and not traded and noposition strategy.entryquot;BUYquot;,strategy.long traded=true if closeCond and not noposition strategy.closequot;BUYquot; if ta.changetimequot;Dquot;=0 traded=false plotZerolagMACDLine,title=quot;MACDLinequot;,color=color.yellow ,linewidth=2 plotZerolagSignalLine,title=quot;SignalLinequot;,color=color.green,linewidth=2 plotHistogram, color=color.black, style=plot.style_histogram,linewidth=2 留意克體的部份就是加上後令策略變成「每天只交易一次」。 先設定traded為false,然後當買入後便設定為true,由於入市條件加上了not traded,代表要traded 必需為false時才會入市,這樣交易一次後就不會再交易,最後加上ta.changetimequot;Dquot;=0,代表要轉為第二個交易日,traded才會再轉變為false,然後第二日當ZerolagMACD的快線升穿慢線時就會符合入市條件。 策略的backtest report 同一樣的交易策略,只是將其改變為「每天只交易一次」,可以看到結果也是虧損,不過,虧損幅度卻由37.45%大幅下降至10.75%。另外要留意,筆者寫這兩個策略是沒有計算「佣金」及「滑價」的,而第一個策略在一年裏交易了1023次,但加上「每天只交易一次」這個條件後,一年裏只交易了258次,交易成本會相差很遠,不過勝率就未見有大幅改善,獲利的次數只有132次,勝率只輕微由50.24%提高至51.16%。 交易策略當然不可能這樣簡單,但只要將以上兩個策略作比較便可看到,每天只交易一次的Daytrade策略確實能提高成效。 網頁 www.quants.hk Youtube httpswww.youtube.com@markchunwai Facebook專頁 httpswww.facebook.comquantshk Patreon httpswww.patreon.comquantshk

新書《ChatGPT如配合Multicharts學習程式交易》近日在各大書局已有售
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2023-12-20

新書《ChatGPT如配合Multicharts學習程式交易》近日在各大書局已有售。 若由一個完全新手要完全熟習Multicharts的語法Power Language,再學習輸入數據、做回測及連接Auto Trade等步驟可能真的需要一定時間。 不過,自ChatGPT出現後,讀者們已可以直接用中文或英文將交易策略寫出來,再運用ChatGPT直接編寫出答案,無論是簡單的技術指標運用,又或陰陽燭策略,甚至較複習的套利策略,ChatGPT都能運用Multicharts的語法直接編寫答案出來。 雖然ChatGPT的答案未必全部正確,但學員只要明白Multicharts語法的使用原理便能懂得直接修改,這種學習方式比過往需要背誦大量Multicharts語法例子的方法更為有效。 而且若大家要寫大量的交易策略做回測也更為方便,因為所有策略不用自己由頭寫起,ChatGPT寫出大部份內容後再修改便可以,最終能節省不少時間。 本書的例子中除了常見的技術指標使用,也有自行組合的陰陽燭形態,以及一些比較高階的短炒及Daytrade 策略,包括分析恒指重磅股走勢短炒期指的方法、長短倉短炒策略 同時買入騰訊沽空阿里巴巴等,這些策略只要ChatGPT及Multicharts同時配合使用,要寫出來及再修改也並不困難。 另外一些較少見的技術指標如適合Daytrade或短炒的Detrended Price Oscillator、Chande Kroll Stop、Super Trend、klinger Oscillator等,又或用以判斷單邊市及上落市的Choppiness Index,在交易時也有一定的參考價值,本書除了介紹這些指標的特別用法外,也會講解如何透過ChatGPT協助編寫這些指標,並同時在Multicharts上直接運用。

2015年每天只交易第一個MACD訊號也能賺錢?
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2015-09-15

近日有學員問及,若2015年每天只交易第一個MACD12,26,9的金叉或死叉訊號好像也能賺錢,原來這麼簡單的策略在2015年也能有不俗回報 但其後他再測試2014年的數據卻又發現虧損收場。 附圖是在2015年每天只交易第一個MACD12,26,9入市訊號的BACKTEST REPORT,結果是2015年1月2日至9月14日獲利41.77%,15萬元本金交易1張大期,資金累增至212652元扣除手續費手及滑價,但2014年卻虧損34.76%。 2015年回報 2014年回報 在這當然不是指只交易第一個MACD入市訊號便能賺錢,這絕不可能如大家自行測試,也可看到雖在2015年能賺錢,但部份交易坐倉的幅度達200點或以上,在真實交易時根本承受不了這份壓力。 以下是利用Amibroker簡單地寫出每日只交易第一個MACD入市訊號的方法, 1先開啟Amibroker的Formula Editor 2 把以下的language貼上 SetPositionSize1, spsshares;BuyCondition = CrossMACD12, 26, Signal12, 26, 9;ShortCondition = CrossSignal12, 26,9, MACD12, 26;CrossCondition = BuyCondition OR ShortCondition; CrossTotal = SumCrossCondition, BarsSince DateNum=RefDateNum,1;Buy = BuyCondition AND RefCrossTotal, 1==0;Sell = 0 OR TimeNum gt;= 160000;Short = ShortCondition AND RefCrossTotal, 1==0;Cover = 0 OR TimeNum gt;= 160000; ProfitPercent = Optimizeldquo;WinPercentquot;, 1.6, 0.2, 2, 0.1;LossPercent = Optimizeldquo;LossPercentquot;, 1.2, 0.2, 2, 0.1; ApplyStopstopTypeProfit, stopModePercent, ProfitPercent;ApplyStopstopTypeLoss, stopModePercent, LossPercent; 3 在backtest前根據以下做設定 一個十分簡單的策略,在2015年又好像比很多的策略回報更好 其實,既然單單是交易每天第一個MACD入市訊號也能在2015年賺錢,是否能根據這個觀念去作出修改 藉此想出一套個人的交易策略 比如出訊號後把入市位介定在其他水平,如平均線等 又或將1分鐘圖表改為3分鐘、5分鐘或10分鐘的圖表 另外,是否每天也需要交易 如附圖中便是將這個簡單得不可再簡單的策略,加上與上日收市的MACD作比較這個準則,藉此剔走一些入市訊號,結果2015年1月2日至9月14日獲利由41.77%提升至182.37%,15萬元本金交易1張大期,資金累增至423547元扣除手續費手及滑價。 以下是利用Amibroker簡單地修改上述策略的寫法 SetPositionSize1, spsshares;BuyCondition = CrossMACD12, 26, Signal12, 26, 9;ShortCondition = CrossSignal12, 26,9, MACD12, 26;CrossCondition = BuyCondition OR ShortCondition; CrossTotal = SumCrossCondition, BarsSince DateNum=RefDateNum,11;Buy = BuyCondition AND RefCrossTotal, 1==0;Sell = 0 OR TimeNum gt;= 160000;Short = ShortCondition AND RefCrossTotal, 1==0;Cover = 0 OR TimeNum gt;= 160000; ProfitPercent = Optimizeldquo;WinPercentquot;, 1.6, 0.2, 2, 0.1;LossPercent = Optimizeldquo;LossPercentquot;, 1.2, 0.2, 2, 0.1; ApplyStopstopTypeProfit, stopModePercent, ProfitPercent;ApplyStopstopTypeLoss, stopModePercent, LossPercent; 當然這個也只是作參考,並不是單單這樣便能賺錢 在課堂上向來也鼓勵學員多嘗試,如上述策略是每天開市後的第一個MACD入市訊號,那若然把策略改為每天「正股市場」開市後的第一個入市訊號,結果又會如何 利用程式的好處就是可以自行去測試,再加上自己經驗得來的交易觀念去修正任何一個策略,繼而進行程式交易。不過在這想提醒一點,2015年港股及期指的波動情況確實比過去五年中任何一年更大,這也令不少Trader的策略在2015年的回報與過去數年不同當然有些高手年年也大賺的。 此外,在這想指出一個問題,2015年港股及期指的波動情況與過去數年不同,相信滬港通的推出是其中一個原因,這點在滬港通剛推出時在講座中提及,但凡一些政策上的轉變,也會令市場的波動產生變化,正如2011年推出期指延長交易時間,大家在設計交易策略時便常遇到一個問題,策略放在2015、2014、2013、2012、2011年也可以賺錢,但在2010及之前的年份表現卻不同,這便是政策令市場波幅改變的結果。 如何去解決這個問題,如何在新政策推出後再修正個人的交易策略,這方面在課堂中會與大家探討