#!python2 # -*- coding:utf-8 -*- from time import sleep Q3 = 0.5 tax = 0.0015 #交易费率,0.15% class fmz_market(): # 基础行情数据处理,根据传入的交易对,获取数据,返回行情dict def basic_data_handle(self, pair): pair_depth = {'sale_volume': 0, 'sale_price': 0, 'buy_volume': 0, 'buy_price': 0} depth = exchanges[pair].GetDepth() asks_infor = depth.Asks[0] bids_infor = depth.Bids[0] pair_depth['sale_volume'] = asks_infor.Amount pair_depth['sale_price'] = asks_infor.Price pair_depth['buy_volume'] = bids_infor.Amount pair_depth['buy_price'] = bids_infor.Price #Log(pair_depth) return pair_depth #进行参数计算 def profit_calculation(self): profit_obtain = 0 #先获取行情数据 P1_depth = self.basic_data_handle(0) P2_depth = self.basic_data_handle(1) P3_depth = self.basic_data_handle(2) #买一价格整理 p1_sale_price =float(P1_depth['sale_price']) p1_buy_price = float(P1_depth['buy_price']) p2_sale_price = float(P2_depth['sale_price']) p2_buy_price = float(P2_depth['buy_price']) p3_sale_price = float(P3_depth['sale_price']) p3_buy_price = float(P3_depth['buy_price']) #深度数据整理 p1_sale_volume = float(P1_depth['sale_volume']) p1_buy_volume = float(P1_depth['buy_volume']) p2_sale_volume = float(P2_depth['sale_volume']) p2_buy_volume = float(P2_depth['buy_volume']) p3_sale_volume = float(P3_depth['sale_volume']) p3_buy_volume = float(P3_depth['buy_volume']) # 进行数据分析,正向交易费率,P1:EOS_USDT,P2:BTC_USDT,P3:EOS_ETH,卖出EOS,买入BTC,买入EOS(卖,买,买) if p1_buy_price / p2_sale_price > p3_sale_price: #总的手续费计算 tax_account = (p1_buy_price + p3_sale_price*p2_sale_price + p3_sale_price*p2_sale_price) * Q3 * tax #总的获利计算 profit_sum = (p1_buy_price / p2_sale_price - p3_sale_price) * Q3 * p2_buy_price Log('P1;',p1_buy_price,',P2:',p2_sale_price,',P3:',p3_sale_price,',tax_account:',tax_account,',profit_sum:',profit_sum) #如果总的获利 < 手续费,则直接退出 if profit_sum < tax_account: return 0 p1_accout_receive = p1_buy_price * Q3 * (1 - tax) #卖出EOS得到usdt,同时减去税 p3_accout_used = p3_sale_price * Q3 * (1 + tax) #计算买入Q3 EOS的时候,需要的BTC p2_accout_used = p2_sale_price * p3_accout_used * (1 + tax) #计算买入的BTC 需要耗费的USDT数量 #获利总量计算 profit_obtain = p1_accout_receive - p2_accout_used #卖EOS得到的usdt - 买入同样数量的EOS需要的USDT return profit_obtain # 进行数据分析,逆向交易费率,P1:EOS_USDT,P2:BTC_USDT,P3:EOS_BTC,卖出EOS->BTC,卖出BTC,买入EOS(卖,卖,买) if p1_buy_price / p2_sale_price < p3_sale_price: # 总的手续费计算 tax_account = (p3_buy_price * p2_buy_price + p3_buy_price * p2_buy_price + p1_sale_price) * Q3 * tax # 总的获利计算 profit_sum = (p3_sale_price - p1_buy_price / p2_sale_price) * Q3 * p2_buy_price Log('P1;', p1_buy_price, ',P2:', p2_sale_price, ',P3:', p3_sale_price, ',tax_account:', tax_account, ',profit_sum:', profit_sum) # 如果总的获利 < 手续费,则直接退出 if profit_sum < tax_account: return 0 p3_accout_receive = p3_buy_price * Q3 * (1 - tax) # 卖出EOS得到BTC,同时减去税 p1_accout_used = p1_sale_price * Q3 * (1 + tax) # 计算买入Q3 EOS的时候,需要的USDT p2_accout_receive = p2_buy_price * p3_accout_receive * (1 - tax) # 计算卖出的BTC 得到的USDT数量 # 获利总量计算 profit_obtain = p2_accout_receive - p1_accout_used #卖出的BTC得到的usdt - 买入EOS锁需要消耗的usdt return profit_obtain return 0 #循环计算 def profit_calculation_cycle(self): usdt_remain = 0 for i in range(10000): profit_obtain = self.profit_calculation() usdt_remain = usdt_remain + profit_obtain if profit_obtain > 0: Log(u'EOS:',Q3,u'.....USDT:',usdt_remain) def main(): Log(exchange.GetAccount()) Log("测试") fmz_market_instances = fmz_market() fmz_market_instances.profit_calculation_cycle() # fmz_market_instances.basic_data_handle(0)
- Ich weiß.Ich habe keine Ahnung, was für eine Strategie das ist.
BNMBNMDie Festplatte zeigt einen Fehler in Zeile 58.
gurengjun@yeah.netDas ist eine gute Strategie, aber sie bringt die Syntax von Python nicht zum Ausmaß.
Der Iron Fist ist unschlagbar.Warum ist es nicht aktualisiert?
Der rote SchneeGibt es gute Tipps? Nein, gib mir einen Tipp.