参数非常简单,以BTC为例,到了开多的区域平空买底仓开多,到了开空的区域平多买底仓开空,反复轮回 显然,在币圈,从长期来看,任何复杂模型都跑不过无脑网格 财富密码是无脑网格+无脑梭哈土狗 希望和最早的马丁一样,都是最为简单粗暴但是赚钱的策略
'''backtest start: 2021-01-01 00:00:00 end: 2021-11-17 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":2500}] args: [["H",30],["n1",0.001],["grid",300],["xia",50000]] ''' def CancelPendingOrders(): orders = _C(exchanges[0].GetOrders) if len(orders)>0: for j in range(len(orders)): exchanges[0].CancelOrder(orders[j].Id, orders[j]) j=j+1 def main(): exchange.SetContractType('swap') exchange.SetMarginLevel(M) currency=exchange.GetCurrency() if _G('buyp') and _G('sellp'): buyp=_G('buyp') sellp=_G('sellp') Log('读取网格价格') else: ticker=exchange.GetTicker() buyp=ticker["Last"]-grid sellp=ticker["Last"]+grid _G('buyp',buyp) _G('sellp',sellp) Log('网格数据初始化') while True: account=exchange.GetAccount() ticker=exchange.GetTicker() position=exchange.GetPosition() orders=exchange.GetOrders() if len(position)==0: if ticker["Last"]>shang: exchange.SetDirection('sell') exchange.Sell(-1,n1*H) Log(currency,'到达开空区域,买入空头底仓') else: exchange.SetDirection('buy') exchange.Buy(-1,n1*H) Log(currency,'到达开多区域,买入多头底仓') if len(position)==1: if position[0]["Type"]==1: if ticker["Last"]<xia: Log(currency,'空单全部止盈反手') exchange.SetDirection('closesell') exchange.Buy(-1,position[0].Amount) else: orders=exchange.GetOrders() if len(orders)==0: exchange.SetDirection('sell') exchange.Sell(sellp,n1) exchange.SetDirection('closesell') exchange.Buy(buyp,n1) if len(orders)==1: if orders[0]["Type"]==1: #止盈成交 Log(currency,'网格减仓,当前份数:',position[0].Amount) CancelPendingOrders() buyp=buyp-grid sellp=sellp-grid LogProfit(account["Balance"]) if orders[0]["Type"]==0: Log(currency,'网格加仓,当前份数:',position[0].Amount) CancelPendingOrders() buyp=buyp+grid sellp=sellp+grid LogProfit(account["Balance"]) if position[0]["Type"]==0: if ticker["Last"]>float(shang): Log(currency,'多单全部止盈反手') exchange.SetDirection('closebuy') exchange.Sell(-1,position[0].Amount) else: orders=exchange.GetOrders() if len(orders)==0: exchange.SetDirection('buy') exchange.Buy(buyp,n1) exchange.SetDirection('closebuy') exchange.Sell(sellp,n1) if len(orders)==1: if orders[0]["Type"]==0: #止盈成交 Log(currency,'网格减仓,当前份数:',position[0].Amount) CancelPendingOrders() buyp=buyp+grid sellp=sellp+grid LogProfit(account["Balance"]) if orders[0]["Type"]==1: Log(currency,'网格加仓,当前份数:',position[0].Amount) CancelPendingOrders() buyp=buyp-grid sellp=sellp-grid LogProfit(account["Balance"])
mexmin for循环语法有问题吧
轻轻的云 请教下,实盘出错提示 Traceback (most recent call last): File "<string>", line 36, in <module> TypeError: object of type 'NoneType' has no len() 不知道该怎么弄了,谢谢
轻轻的云 【超级赞】如果能用JS写一份儿就更好了 O(∩_∩)O
轻轻的云 好的 谢谢
恐龙宝宝 position的结构数组看一下,应该是这里的问题