2023-01-11 17:10:25 +08:00
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
> Name
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|
|
|
|
|
|
幽灵趋势跟踪策略
|
|
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
> Author
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|
|
|
|
|
|
陈皮
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
> Strategy Arguments
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
|Argument|Default|Description|
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|----|----|----|
|
|
|
|
|
|
|leverage|true|杠杆|
|
|
|
|
|
|
|tickInterval|3000|轮巡间隔时间(毫秒)|
|
|
|
|
|
|
|orderValue|50|下单价值(%)|
|
|
|
|
|
|
|bfCount|168|节点数|
|
|
|
|
|
|
|isFlag|false|反转信号|
|
|
|
|
|
|
|stopSurplus|3|百分比减仓|
|
|
|
|
|
|
|stopSurplusCount|50|减仓量(%)|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
|Button|Default|Description|
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|----|----|----|
|
|
|
|
|
|
|一键清仓|__button__|一键清仓|
|
|
|
|
|
|
|现货==》合约|10|从现货账户划转USDT到合约账户|
|
|
|
|
|
|
|合约==》现货|10|从合约账户划转USDT到现货账户|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
> Source (python)
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|
|
|
|
|
|
``` python
|
|
|
|
|
|
import json
|
|
|
|
|
|
import traceback
|
|
|
|
|
|
#SYMBOLS = ['1INCH_USDT','ADA_USDT','ALGO_USDT','ATOM_USDT','AVAX_USDT','AAVE_USDT','AXS_USDT',
|
|
|
|
|
|
# 'BAND_USDT','BCH_USDT','BTC_USDT','COMP_USDT','CHZ_USDT','CRV_USDT','CVC_USDT','DOGE_USDT'
|
|
|
|
|
|
# ,'DOT_USDT','DYDX_USDT','DASH_USDT','EGLD_USDT','ENJ_USDT','ENS_USDT','EOS_USDT','ETH_USDT',
|
|
|
|
|
|
# 'ETC_USDT','FIL_USDT','FTM_USDT','GALA_USDT','GRT_USDT','IOTA_USDT','ICP_USDT','KSM_USDT',
|
|
|
|
|
|
# 'LINK_USDT','LRC_USDT','LTC_USDT','MANA_USDT','MATIC_USDT','NEAR_USDT','OMG_USDT','SAND_USDT',
|
|
|
|
|
|
# 'SC_USDT','1000SHIB_USDT','SOL_USDT','SRM_USDT','STORJ_USDT','SUSHI_USDT','THETA_USDT','TRX_USDT',
|
|
|
|
|
|
# 'UNI_USDT','XRP_USDT','XLM_USDT','XMR_USDT','XTZ_USDT','YFI_USDT','ZEC_USDT','PEOPLE_USDT',
|
|
|
|
|
|
# 'APE_USDT','GMT_USDT','ZIL_USDT','KNC_USDT']
|
|
|
|
|
|
SYMBOLS = ['1INCH_USDT','ALGO_USDT','ATOM_USDT','AVAX_USDT','AAVE_USDT','AXS_USDT',
|
|
|
|
|
|
'BAND_USDT','BCH_USDT','BTC_USDT','COMP_USDT','CVC_USDT','DOGE_USDT'
|
|
|
|
|
|
,'DOT_USDT','DYDX_USDT','DASH_USDT','EGLD_USDT','ENJ_USDT','ENS_USDT','EOS_USDT','ETH_USDT',
|
|
|
|
|
|
'ETC_USDT','FTM_USDT','GALA_USDT','GRT_USDT','IOTA_USDT','KSM_USDT',
|
|
|
|
|
|
'LINK_USDT','LRC_USDT','LTC_USDT','MANA_USDT','MATIC_USDT','NEAR_USDT','OMG_USDT','SAND_USDT',
|
|
|
|
|
|
'SC_USDT','SOL_USDT','SRM_USDT','SUSHI_USDT','THETA_USDT','TRX_USDT',
|
|
|
|
|
|
'UNI_USDT','XRP_USDT','XLM_USDT','XMR_USDT','XTZ_USDT','YFI_USDT','ZEC_USDT','PEOPLE_USDT',
|
|
|
|
|
|
'APE_USDT','ZIL_USDT','KNC_USDT']
|
|
|
|
|
|
#主函数
|
|
|
|
|
|
def main():
|
|
|
|
|
|
try:
|
|
|
|
|
|
while True:
|
|
|
|
|
|
flage = ext.GetStopService()
|
|
|
|
|
|
if flage == 1:
|
|
|
|
|
|
break
|
|
|
|
|
|
#策略交互
|
|
|
|
|
|
ext.GetCommandService()
|
|
|
|
|
|
#选币功能
|
|
|
|
|
|
ext.GetSymbolService()
|
|
|
|
|
|
#下单信号
|
|
|
|
|
|
ext.FirstSignalService()
|
|
|
|
|
|
#减仓信号
|
|
|
|
|
|
ext.StopSurplusService()
|
|
|
|
|
|
#展示数据
|
|
|
|
|
|
ext.UpdateLogStatusService()
|
|
|
|
|
|
Sleep(tickInterval)
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
Log(traceback.format_exc())
|
|
|
|
|
|
Log("策略已停止,请及时查看@")
|
|
|
|
|
|
|
|
|
|
|
|
#初始化函数
|
|
|
|
|
|
def init():
|
|
|
|
|
|
Log("策略开始")
|
|
|
|
|
|
#设置合约永续
|
|
|
|
|
|
if len(exchanges) != 2:
|
|
|
|
|
|
Log("需要设置两组交易对")
|
|
|
|
|
|
return
|
|
|
|
|
|
symbolRecord = _G("symbolRecord")
|
|
|
|
|
|
Log("symbolRecord:",symbolRecord)
|
|
|
|
|
|
if symbolRecord is not None:
|
|
|
|
|
|
symbol = symbolRecord['symbol']
|
|
|
|
|
|
exchange.SetCurrency(symbol)
|
|
|
|
|
|
_G("symbolRecord",None)
|
|
|
|
|
|
exchange.SetContractType("swap")
|
|
|
|
|
|
exchange.SetMarginLevel(leverage)
|
|
|
|
|
|
exchanges[1].SetContractType("swap")
|
|
|
|
|
|
exchanges[1].SetMarginLevel(leverage)
|
|
|
|
|
|
_G("orderValue",orderValue)
|
|
|
|
|
|
_G("leverage",leverage)
|
|
|
|
|
|
_G("bfCount",bfCount)
|
|
|
|
|
|
_G("symbols",SYMBOLS)
|
|
|
|
|
|
_G("isFlag",isFlag)
|
|
|
|
|
|
_G("isUpdate",0)
|
|
|
|
|
|
_G("stopSurplus",stopSurplus)
|
|
|
|
|
|
_G("stopSurplusCount",stopSurplusCount)
|
|
|
|
|
|
Log("所有交易标的:",SYMBOLS)
|
|
|
|
|
|
if _G("initialTotalMarginBalance") is None:
|
|
|
|
|
|
info = exchange.GetAccount().Info
|
|
|
|
|
|
if info is None or info == {}:
|
|
|
|
|
|
Log("获取不到期货数据,无法运行")
|
|
|
|
|
|
return
|
|
|
|
|
|
_G("initialTotalMarginBalance", round(float(info.totalMarginBalance),2))#初始金额
|
|
|
|
|
|
if _G("drawIn") is None:
|
|
|
|
|
|
_G("drawIn",0)
|
|
|
|
|
|
if _G("drawOut") is None:
|
|
|
|
|
|
_G("drawOut",0)
|
|
|
|
|
|
ext.ClearAllService()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#扫尾函数
|
|
|
|
|
|
def onexit():
|
|
|
|
|
|
#平仓
|
|
|
|
|
|
#ext.ClearanceService()
|
|
|
|
|
|
ext.UpdateLogStatusService()
|
|
|
|
|
|
#Log("已全部平仓")
|
|
|
|
|
|
Log("策略已停止")
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
> Detail
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|
|
|
|
|
|
https://www.fmz.com/strategy/363409
|
|
|
|
|
|
|
2023-07-14 18:39:48 +08:00
|
|
|
|
> Last Modified
|
2023-01-11 17:10:25 +08:00
|
|
|
|
|
|
|
|
|
|
2022-10-01 01:51:21
|