Skip to content

Commit

Permalink
Merge pull request vnpy#2181 from vnpy/dev-spread-crypto
Browse files Browse the repository at this point in the history
Dev spread crypto
  • Loading branch information
vnpy authored Nov 7, 2019
2 parents 8ad0387 + daaadd8 commit 2e01bef
Show file tree
Hide file tree
Showing 25 changed files with 449 additions and 228 deletions.
20 changes: 10 additions & 10 deletions examples/vn_trader/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from vnpy.gateway.bitmex import BitmexGateway
# from vnpy.gateway.futu import FutuGateway
# from vnpy.gateway.ib import IbGateway
from vnpy.gateway.ctp import CtpGateway
# from vnpy.gateway.ctp import CtpGateway
# from vnpy.gateway.ctptest import CtptestGateway
# from vnpy.gateway.mini import MiniGateway
# from vnpy.gateway.sopt import SoptGateway
Expand All @@ -18,20 +18,20 @@
# from vnpy.gateway.oes import OesGateway
# from vnpy.gateway.okex import OkexGateway
# from vnpy.gateway.huobi import HuobiGateway
from vnpy.gateway.bitfinex import BitfinexGateway
# from vnpy.gateway.bitfinex import BitfinexGateway
# from vnpy.gateway.onetoken import OnetokenGateway
from vnpy.gateway.okexf import OkexfGateway
from vnpy.gateway.okexs import OkexsGateway
# from vnpy.gateway.okexf import OkexfGateway
# from vnpy.gateway.okexs import OkexsGateway
# from vnpy.gateway.xtp import XtpGateway
# from vnpy.gateway.hbdm import HbdmGateway
# from vnpy.gateway.tap import TapGateway
# from vnpy.gateway.tora import ToraGateway
# from vnpy.gateway.alpaca import AlpacaGateway
from vnpy.gateway.da import DaGateway
from vnpy.gateway.coinbase import CoinbaseGateway
from vnpy.gateway.bitstamp import BitstampGateway
from vnpy.gateway.gateios import GateiosGateway
from vnpy.gateway.bybit import BybitGateway
# from vnpy.gateway.da import DaGateway
# from vnpy.gateway.coinbase import CoinbaseGateway
# from vnpy.gateway.bitstamp import BitstampGateway
# from vnpy.gateway.gateios import GateiosGateway
# from vnpy.gateway.bybit import BybitGateway

from vnpy.app.cta_strategy import CtaStrategyApp
# from vnpy.app.csv_loader import CsvLoaderApp
Expand Down Expand Up @@ -79,7 +79,7 @@ def main():
# main_engine.add_gateway(CoinbaseGateway)
# main_engine.add_gateway(BitstampGateway)
# main_engine.add_gateway(GateiosGateway)
main_engine.add_gateway(BybitGateway)
# main_engine.add_gateway(BybitGateway)

main_engine.add_app(CtaStrategyApp)
main_engine.add_app(CtaBacktesterApp)
Expand Down
1 change: 1 addition & 0 deletions vnpy/api/mini/include/mini/ThostFtdcTraderApi.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class CThostFtdcTraderSpi
///客户端认证响应
virtual void OnRspAuthenticate(CThostFtdcRspAuthenticateField *pRspAuthenticateField, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};


///登录请求响应
virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};

Expand Down
9 changes: 7 additions & 2 deletions vnpy/api/mini/include/mini/ThostFtdcUserApiDataType.h
Original file line number Diff line number Diff line change
Expand Up @@ -1976,6 +1976,11 @@ typedef char TThostFtdcCommentType[31];
/////////////////////////////////////////////////////////////////////////
typedef char TThostFtdcVersionType[4];

/////////////////////////////////////////////////////////////////////////
/////UtpCipherVersionType是一个版本信息类型
///////////////////////////////////////////////////////////////////////////
typedef char UtpCipherVersionType[65];

/////////////////////////////////////////////////////////////////////////
///TFtdcTradeCodeType是一个交易代码类型
/////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -6410,11 +6415,11 @@ typedef char TThostFtdcClientSystemInfoType[273];
/////////////////////////////////////////////////////////////////////////
///TThostFtdcAppIDType是App代码类型
/////////////////////////////////////////////////////////////////////////
typedef char TThostFtdcClientAppIDType[21];
typedef char TThostFtdcClientAppIDType[33];

/////////////////////////////////////////////////////////////////////////
///TThostFtdcAutoCodeType是AutoCode代码类型
/////////////////////////////////////////////////////////////////////////
typedef char TThostFtdcAutoCodeType[17];
typedef char TThostFtdcAutoCodeType[17];

#endif
20 changes: 11 additions & 9 deletions vnpy/api/mini/include/mini/ThostFtdcUserApiStruct.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,8 @@ struct CThostFtdcReqAuthenticateField
TThostFtdcProductInfoType UserProductInfo;
///认证码
TThostFtdcAuthCodeType AuthCode;
///App代码
TThostFtdcClientAppIDType AppID;
// App代码
TThostFtdcClientAppIDType AppID;
};

///客户端认证响应
Expand All @@ -125,8 +125,8 @@ struct CThostFtdcRspAuthenticateField
TThostFtdcUserIDType UserID;
///用户端产品信息
TThostFtdcProductInfoType UserProductInfo;
///App代码
TThostFtdcClientAppIDType AppID;
// App代码
TThostFtdcClientAppIDType AppID;
};

///客户端认证信息
Expand All @@ -139,13 +139,15 @@ struct CThostFtdcAuthenticationInfoField
///用户端产品信息
TThostFtdcProductInfoType UserProductInfo;
///时间戳
TThostFtdcAuthInfoType TimeStamp;
TThostFtdcAuthInfoType TimeStamp;
///认证信息
TThostFtdcAuthInfoType AuthInfo;
///是否为认证结果
TThostFtdcBoolType IsResult;
///App代码
TThostFtdcClientAppIDType AppID;
// App代码
TThostFtdcClientAppIDType AppID;
// 版本信息
UtpCipherVersionType VerInfo;
};

///银期转帐报文头
Expand Down Expand Up @@ -1926,9 +1928,9 @@ struct CThostFtdcTransFundField
///投资者帐号
TThostFtdcAccountIDType AccountID;
///出金的核心地址
TThostFtdcAddressAndPortType DepositKernel;
TThostFtdcAddressAndPortType DepositKernel;
///入金的核心地址
TThostFtdcAddressAndPortType IncomingKernel;
TThostFtdcAddressAndPortType IncomingKernel;
///币种代码
TThostFtdcCurrencyIDType CurrencyID;
///转账金额
Expand Down
Binary file modified vnpy/api/mini/libs/thostmduserapi.lib
Binary file not shown.
Binary file modified vnpy/api/mini/libs/thosttraderapi.lib
Binary file not shown.
Binary file modified vnpy/api/mini/thostmduserapi.dll
Binary file not shown.
Binary file modified vnpy/api/mini/thosttraderapi.dll
Binary file not shown.
8 changes: 6 additions & 2 deletions vnpy/app/cta_strategy/backtesting.py
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,8 @@ def run_optimization(self, optimization_setting: OptimizationSetting, output=Tru
self.pricetick,
self.capital,
self.end,
self.mode
self.mode,
self.inverse
)))
results.append(result)

Expand Down Expand Up @@ -612,6 +613,7 @@ def mutate_individual(individual, indpb):
global ga_capital
global ga_end
global ga_mode
global ga_inverse

ga_target_name = target_name
ga_strategy_class = self.strategy_class
Expand All @@ -626,6 +628,7 @@ def mutate_individual(individual, indpb):
ga_capital = self.capital
ga_end = self.end
ga_mode = self.mode
ga_inverse = self.inverse

# Set up genetic algorithem
toolbox = base.Toolbox()
Expand Down Expand Up @@ -1217,7 +1220,8 @@ def _ga_optimize(parameter_values: tuple):
ga_pricetick,
ga_capital,
ga_end,
ga_mode
ga_mode,
ga_inverse
)
return (result[1],)

Expand Down
4 changes: 2 additions & 2 deletions vnpy/app/script_trader/cli.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Sequence
from typing import Sequence, Type

from vnpy.event import EventEngine, Event
from vnpy.trader.engine import MainEngine
Expand All @@ -14,7 +14,7 @@ def process_log_event(event: Event):
print(f"{log.time}\t{log.msg}")


def init_cli_trading(gateways: Sequence[BaseGateway]):
def init_cli_trading(gateways: Sequence[Type[BaseGateway]]):
""""""
event_engine = EventEngine()
event_engine.register(EVENT_LOG, process_log_event)
Expand Down
12 changes: 9 additions & 3 deletions vnpy/app/spread_trading/algo.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from typing import Any

from vnpy.trader.constant import Direction
from vnpy.trader.constant import Direction, Offset
from vnpy.trader.object import (TickData, OrderData, TradeData)
from vnpy.trader.utility import round_to

from .template import SpreadAlgoTemplate
from .base import SpreadData
Expand All @@ -17,6 +18,7 @@ def __init__(
algoid: str,
spread: SpreadData,
direction: Direction,
offset: Offset,
price: float,
volume: float,
payup: int,
Expand All @@ -25,8 +27,9 @@ def __init__(
):
""""""
super().__init__(
algo_engine, algoid, spread, direction,
price, volume, payup, interval, lock
algo_engine, algoid, spread,
direction, offset, price, volume,
payup, interval, lock
)

self.cancel_interval: int = 2
Expand Down Expand Up @@ -109,6 +112,7 @@ def hedge_passive_legs(self):
# Calcualte spread volume to hedge
active_leg = self.spread.active_leg
active_traded = self.leg_traded[active_leg.vt_symbol]
active_traded = round_to(active_traded, self.spread.min_volume)

hedge_volume = self.spread.calculate_spread_volume(
active_leg.vt_symbol,
Expand All @@ -118,6 +122,8 @@ def hedge_passive_legs(self):
# Calculate passive leg target volume and do hedge
for leg in self.spread.passive_legs:
passive_traded = self.leg_traded[leg.vt_symbol]
passive_traded = round_to(passive_traded, self.spread.min_volume)

passive_target = self.spread.calculate_leg_volume(
leg.vt_symbol,
hedge_volume
Expand Down
Loading

0 comments on commit 2e01bef

Please sign in to comment.