期貨期權交流寫出你的第一個交易策略 [MC]
- 咨詢內容:
自動化程序交易的目的最主要是徹徹底底的執行設定好的策略,避免人性的干擾,又可以24hr執行監測,可以在投入真正資金前,回測自己交易策略的績效。平常交易時間還能把心力花在研擬策略上。
一般人第一眼看到程序交易,總想說太復雜困難,
其實程序交易的基礎很簡單,當符合某種情形時,就買進。當符合某種情形時,就賣出。
簡單吧?
用英文來解釋,其實就是:If A happens, then buy. If B happens, then sell.
所以我們只要去定義 A、B,以及更明確地把 Buy 、Sell的模式定義出來就好。這已經幾乎快要變成咱們MC認得的 easy language 程序語言了。
很多人都以為寫程序一定要工程背景的人才寫得出來,其實不然。在交易領域里面,所使用的程序語言其實跟英文很像,而且所使用的英文都是很簡單的。
電腦其實也是判斷K棒的價格的變化來執行的,那K棒上最重要的四個價位,Open 開盤價,High 最高價,Close 收盤價,Low 最低價,這四個價格構成了一根K棒,也顯示了價格的變化。
語法中Close > 100 (表示收盤價大于100 ),Low < 100 (最低價小于100 ),High > Open (最高價大于開盤價)。
上面是平鋪直述的直述句,若是加上一點簡單的 if ...then ...(假如...發生,就....),就可以變成一個可執行的策略,
舉例: (先不考慮marketposition目前手中部位的情形)
if High > Open then buy next bar at market;//當最高價高于開盤價時,買進1手市價。
if Low < Open then sell next bar at market;//當最低價低于開盤價時,賣出1手市價。
備注: next bar是指下一根K棒,market是指市價。
再進階一點的,就可以開始使用一些技術分析的指標來協助。以 RSI舉例, RSI的中文名稱是 相對強弱指標 Relative Strength Index ,是一個 0~100 的指標,50以上代表目前偏多,50以下代表目前偏空。
我們來一起寫一個簡單的策略:
RSI 大于 52 買進1口(做多),RSI 小于 48 賣出1口(做空 or 平倉),(意思是,趨勢轉向上,我就跟跟看,趨勢轉向下就快跑),
我們一開始得先定義一下變數。什么叫做變數?變數顧名思義,就是在程序執行中,會一直變動的數字,例如開車時的時速表。
所以我們得先告訴電腦, RSI的定義。這個動作叫做 宣告。
所以在策略一開頭,
inputs: Price(close), Len(12);//input 是未來可以在MC里調整的參數,price(收盤價)以及時間周期 Len(在這邊是12根K棒),
vars: var1(0);//vars 告訴系統我們要宣告變數了,定義一下var1 變數(variable) ,告訴電腦我們有這個變數要偵測。
var1=RSI(Price,len);//定義,var1=RSI 讓var1 這個變數等于指標RSI,而且是用 上面定義的時間以及價格參數去計算RSI,此例為 12根K棒的收盤價。
if marketposition=0 and var1 >52 then beginbuy("buy") next bar at market;end;
//假如目前沒有部位(marketposotion=0) 而且 var1(RSI)大于52,就在下一根K棒開始時(next bar),市價(market)買進(buy)。多單進場!沒有寫手數就1手。并在圖上標記 buy ("buy")。記得尾巴要寫 end; 告訴電腦這部分策略的結尾。
marketposotion是指您在市場的部位,
marketposition=0 沒有部位,
marketposition=1 手上多單,
marketposition=-1 手上空單。
if marketposition=0 and var1 < 48 then beginsellshort("sell") next bar at market;end;// 空單進場! sellshort 是空單的進場的語法 并標記 sell 在圖上。
if marketposition>0 and var1 <48 then beginsell("exit_buy") next bar at market;end;//假如手上是多單而且RSI小于 48,就把手中的多單市價平倉。
if marketposition<0 and var1 > 52 then beginbuytocover("exit_sell") next bar at market;end;//假如手上是空單而且RSI大于52,就把手中的空單市價平倉。
MultiCharts RSI 策略完整程序碼
inputs: Price(close), Len(12);vars: var1(0);var1=RSI(Price,len);
if marketposition=0 and var1 >52 then beginbuy("buy") next bar at market;end;
if marketposition=0=0 and var1 < 48 then beginsellshort("sell") next bar at market;end;
if marketposition>0 and var1 <48 then beginsell("exit_buy") next bar at market;end;
if marketposition<0 and var1 > 52 then beginbuytocover("exit_sell") next bar at market;end;
(作者:老余的金融筆記)
程序語言, 最低價, 開盤價, 收盤價, 英文 - MC技術部: 新年快樂
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容