合約現貨量化交易開發系統原始碼|量化交易機器人對沖策略

搭建猿punk2558發表於2023-03-16

自動交易系統由幾個元素組成。您需要決定要交易的市場,建立特徵來識別交易邏輯並制定策略來實施該邏輯來買賣貨幣。您的系統應該決定何時進入和退出交易,考慮交易成本並透過回測(但不是過度擬合)進行最佳化。

首先要先確定量化投資組合研發的框架:

一、圖表和資料:利用第三方網站或者軟體的資料下載後建立組合。

二、策略和回測:利用第三方平臺建立組合,量化交易機器人系統13z開4z77發z558,對策略進行最佳化和調整。

三、智慧投資:公司自己購買資料,建立自己的底層平臺,擁有自己的核心演演算法

第二步我們要知道正期望的交易系統需要滿足哪些條件?

一個交易系統,假設勝率是P,贏虧比是R=W/L,系統期望值為M。

M=P*W-(1-P)*L

正期望系統一共有三個

一、高盈虧比及高勝率

二、低盈虧比及高勝率

三、高盈虧比及低勝率

正期望值系統:

給大家分享兩種常見的盈利系統:

1、操作方式是盈虧比放大,運用趨勢跟蹤交易,靠放大盈虧比獲利。

模型:海龜趨勢交易系統

2、盈虧比為1:1的趨勢交易,止損適當放大,靠勝率優勢來獲利。

模型:日內隨機交易系統

第三步就是量化投資組合研發:好的組合能讓整個賬戶的資金曲線更好的增長,那怎麼設計組合呢?

1.智慧組合生成:根據投資者的投資回報率,生成該回報率下價效比最高(風險最低)的投資組合。

2.智慧組合篩選:檢視投資組合過往表現及預期未來投資結果,篩選投資組合。

3.智慧組合購買:一鍵購買,同步買入組合所有品種。

4、智慧組合收藏:方便管理,儲存購買組合的詳細資訊,包括品種名字和品種佔比

5、智慧組合賬戶跟蹤:透過手機App和微信查詢投資組合的淨值變動,月度提醒組合的調倉管理。

我們在其中儲存市場行情資訊。我們希望我們的系統可以處理各種市場行精,所以我們先講一下通用的方法。但是我們要開發的是一個簡單的回測系統,所以在初期版本中,我們儘量將問題簡化,等核心功能全部實現之後,我們再新增這些可擴充套件功能比較合理。

我們先來定義一個金融分析系統的配置類:

class FasConfig(object):

TDT_ASDK='asdk'#A股日K線資料

def __init__(self):

self.name='fas.bktr.FasConfig'

def new_tick_data(self,tick_data_type,symbol,timestamp,**args):

if tick_data_type==FasConfig.TDT_ASDK:

return AsdkTickData(symbol,timestamp,

open_price=args['open_price'],

high_price=args['high_price'],

low_price=args['low_price'],

close_price=args['close_price'],

total_volume=args['total_volume']

)

return None

fas_config=FasConfig()

我們在其中定義了FasConfig類和一個例項,在類中我們定義了TickData型別的常量,目前我們只研究A股K線行情,因此只有一個常量定義,後面隨著系統越來越完善,會定義更多的常量。

我們在new_tick_data方法中,生成一個新的TickData子類例項。tick_data_type指定子型別別,symbol是金融標的程式碼,timestamp是時間點,**args是以字典形式傳過來的可變數量引數。由上面的程式碼可以看到,這個方法最終會生成一個AsdkTickData類例項。

下面我們來看市場資料類:

class MarketData(object):

def __init__(self):

self.name='fas.bktr.MarketData'

self.__tick_datas={}

def add_close_price(self,symbol,timestamp,close_price):

if symbol not in self.__tick_datas:

tick_data=fas_config.new_tick_data(

fas_config.TDT_ASDK,symbol,timestamp,

open_price=1.0,high_price=2.0,low_price=3.0,

close_price=4.0,total_volume=5.0

)

print('tick_data:{0};'.format(tick_data.close_price))

在這個類中,我們定義私有屬性__tick_datas來儲存行情資料,其是一個字典,鍵值為標的程式碼。

在add_close_price方法中,如果標的程式碼不在行情字典中,則生成一個新的對應的TickData子類例項。請大家注意,前面3個引數分別指定的TickData的子類,標的程式碼和時間點,後面的引數會形成**args引數列示的字典。這樣就可以生成任意的行情資料類了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70020115/viewspace-2940097/,如需轉載,請註明出處,否則將追究法律責任。

相關文章