O que é uma cobertura de longo prazo? O que é chamado de diferencial de prazo é o estabelecimento de uma quantidade igual de posições de negociação em contratos de diferentes meses da mesma variedade de futuros, em direções opostas, e, finalmente, o fechamento do negócio por meio de um hedge ou entrega. O modo mais simples de diferencial de prazo é comprar uma variedade de futuros de curto prazo e vender uma variedade de futuros de longo prazo. Por exemplo, o contrato semanal e semanal do BTC da Okex.
Como fazer a cobertura de longo prazo no OKEX? Os preços dos contratos semanais, semanais e trimestrais na okex são frequentemente diferidos. Se o diferencial atingir ou exceder um determinado limiar, pode-se fazer uma contrapartida entre os períodos e, quando o diferencial desaparecer, fazer um equilíbrio reverso, aproveitando o retorno razoável do diferencial para obter lucros. Por exemplo, os contratos da BTC existem na semana e na semana seguinte e o diferencial é menor que o preço do contrato da semana seguinte, quando o diferencial atinge o limite definido, os investidores podem fazer contratos semanais e fazer o mesmo número de contratos semanais, até que o diferencial retorne, obtendo lucros.
O risco de cobertura de longo prazo: Como os dois contratos têm diferentes prazos de entrega, pode haver um prejuízo quando o contrato mais recente for forçado a entregar, e o diferencial de preço não é recuperado.
Funções e características da implementação da estratégia: Suporte à cobertura de longo prazo OKEX Apoio aos contratos semanais, semanais e trimestrais da Okex Suporta todas as variedades de negociação de contratos OKEX (BTC, BCH, EOS, BSV, ETH, etc.)
Nota especial: Esta política precisa de depender da biblioteca de modelos Botvstools para funcionar! Para baixar a biblioteca de modelos, acesse aqui:https://www.pcclean.io/45gd(Descompresso após o download do arquivo zip, há dois arquivos js, um é a política e outro é a biblioteca de modelos, por favor note a diferença)
Os parâmetros da estratégia são:https://www.pcclean.io/45gd
var strategy_version="1.2.0.7(adjust parameters)"; /* 使用说明: 1. 请先针对交易所和交易对设置策略参数后再运行此策略。 2. fmz中添加交易所: okex期货交易所 3. 参数里面contract_min表示单个合约价值,不要随意更改 4. 建议okex里面设置为全仓模式,以免出现保证金不足的情况 5. 尽量使用okex api v1 6. 此策略仅用于学习分享,实盘风险自担。 */ /********************************************策略参数**********************************/ var price_n={Futures_OKCoin_BSV_USD:2};//价格精度设置 var num_n={Futures_OKCoin_BSV_USD:0};//数量精度设置 var minestbuy={Futures_OKCoin_BSV_USD:1};//最小买入量 var price_step={Futures_OKCoin_BSV_USD:0.05};//定价单调整量 var contract_min={Futures_OKCoin_BSV_USD:10};//最小合约金额 var wait_ms=3000;//重试等待时间(ms) var max_wait_order=10000;//订单等待时间(ms) var margin_lv=10;//杠杆倍数 var jiacha_monitor={tw_nw:0.02,tw_qt:0.02,nw_qt:0.02};//开仓差价 var hulie_monitor={tw_nw:0.003,tw_qt:0.003,nw_qt:0.003};//忽略的差价 var ok_future_target='bsv';//目标合约 var keep_risk_rate=10;//保证金率 var trade_unit=100;//每次交易多少张 var push_notification=true;//微信通知交易机会 /********************************************策略参数**********************************/ //全局变量 var total_loop=0; //主函数 function main(){ Log("strategy_version="+strategy_version); $.set_params(price_n,num_n,minestbuy,price_step,wait_ms,max_wait_order); if (push_notification){ Log("策略开始运行!已开启推送。@"); } while(true){ exchange.SetMarginLevel(margin_lv); var exname=exchange.GetName(); var currency=exchange.GetCurrency(); var account=$.retry_get_account(exchange); var f_orders=_C(exchange.GetOrders); exchange.SetContractType("this_week"); var tw_depth=_C(exchange.GetDepth); var tw_sell1=tw_depth.Asks[0].Price; var tw_buy1=tw_depth.Bids[0].Price; var tw_records=_C(exchange.GetRecords,PERIOD_H1); if (tw_records.length<=50){ Log("tw_records.length无效,跳过此次执行..."); Sleep(wait_ms); continue; } exchange.SetContractType("next_week"); var nw_depth=_C(exchange.GetDepth); var nw_sell1=nw_depth.Asks[0].Price; var nw_buy1=nw_depth.Bids[0].Price; var nw_records=_C(exchange.GetRecords,PERIOD_H1); if (nw_records.length<=50){ Log("nw_records.length无效,跳过此次执行..."); Sleep(wait_ms); continue; } exchange.SetContractType("quarter"); var qt_depth=_C(exchange.GetDepth); var qt_sell1=qt_depth.Asks[0].Price; var qt_buy1=qt_depth.Bids[0].Price; var qt_records=_C(exchange.GetRecords,PERIOD_H1); if (qt_records.length<=50){ Log("qt_records.length无效,跳过此次执行..."); Sleep(wait_ms); continue; } var tw_price_ma = TA.MA(tw_records, 30).slice(-1)[0]; var nw_price_ma = TA.MA(nw_records, 30).slice(-1)[0]; var qt_price_ma = TA.MA(qt_records, 30).slice(-1)[0]; var position=_C(exchange.GetPosition); var tw_zuoduo_zhangshu=0; var tw_zuoduo_avg_price=0; var tw_zuoduo_amount=0; var tw_zuokong_zhangshu=0; var tw_zuokong_avg_price=0; var tw_zuokong_amount=0; var nw_zuoduo_zhangshu=0; var nw_zuoduo_avg_price=0; var nw_zuoduo_amount=0; var nw_zuokong_zhangshu=0; var nw_zuokong_avg_price=0; var nw_zuokong_amount=0; var qt_zuoduo_zhangshu=0; var qt_zuoduo_avg_price=0; var qt_zuoduo_amount=0; var qt_zuokong_zhangshu=0; var qt_zuokong_avg_price=0; var qt_zuokong_amount=0; for (var i=0; i < position.length; i++){ if (position[i].ContractType==="this_week"){ if (position[i].Type===PD_LONG){ tw_zuoduo_zhangshu=position[i].Amount; tw_zuoduo_avg_price=position[i].Price; tw_zuoduo_amount=tw_zuoduo_zhangshu*contract_min[$.get_exchange_id(exchange)]*(1/tw_zuoduo_avg_price-1/tw_buy1+1/tw_zuoduo_avg_price); } if (position[i].Type===PD_SHORT){ tw_zuokong_zhangshu=position[i].Amount; tw_zuokong_avg_price=position[i].Price; tw_zuokong_amount=tw_zuokong_zhangshu*contract_min[$.get_exchange_id(exchange)]*(1/tw_sell1-1/tw_zuokong_avg_price+1/tw_zuokong_avg_price); } } if (position[i].ContractType==="next_week"){ if (position[i].Type===PD_LONG){ nw_zuoduo_zhangshu=position[i].Amount; nw_zuoduo_avg_price=position[i].Price; nw_zuoduo_amount=nw_zuoduo_zhangshu*contract_min[$.get_exchange_id(exchange)]*(1/nw_zuoduo_avg_price-1/nw_buy1+1/nw_zuoduo_avg_price); } if (position[i].Type===PD_SHORT){ nw_zuokong_zhangshu=position[i].Amount; nw_zuokong_avg_price=position[i].Price; nw_zuokong_amount=nw_zuokong_zhangshu*contract_min[$.get_exchange_id(exchange)]*(1/nw_sell1-1/nw_zuokong_avg_price+1/nw_zuokong_avg_price); } } if (position[i].ContractType==="quarter"){ if (position[i].Type===PD_LONG){ qt_zuoduo_zhangshu=position[i].Amount; qt_zuoduo_avg_price=position[i].Price; qt_zuoduo_amount=qt_zuoduo_zhangshu*contract_min[$.get_exchange_id(exchange)]*(1/qt_zuoduo_avg_price-1/qt_buy1+1/qt_zuoduo_avg_price); } if (position[i].Type===PD_SHORT){ qt_zuokong_zhangshu=position[i].Amount; qt_zuokong_avg_price=position[i].Price; qt_zuokong_amount=qt_zuokong_zhangshu*contract_min[$.get_exchange_id(exchange)]*(1/qt_sell1-1/qt_zuokong_avg_price+1/qt_zuokong_avg_price); } } } var account_rights=account.Info.info[ok_future_target].account_rights;//账户权益 var keep_deposit=account.Info.info[ok_future_target].keep_deposit;//保证金 var profit_real=account.Info.info[ok_future_target].profit_real;//已实现盈亏 var profit_unreal=account.Info.info[ok_future_target].profit_unreal;//未实现盈亏 var risk_rate=account.Info.info[ok_future_target].risk_rate;//保证金率 10倍杠杆,当保证金率小于等于10%,才会触发爆仓线;20倍杠杆,当保证金率小于等于20%,才会触发爆仓线。 这意味着如果您开10倍LTC合约,当您的亏损达到开仓保证金的90%时,会触发爆仓线;若开20倍杠杆的合约,当您的亏损达到开仓保证金的80%时,才会触发爆仓线。 var tw_buy1_fixed=tw_buy1; var tw_sell1_fixed=tw_sell1; var nw_buy1_fixed=nw_buy1-(nw_price_ma-tw_price_ma); var nw_sell1_fixed=nw_sell1-(nw_price_ma-tw_price_ma); var qt_buy1_fixed=qt_buy1-(qt_price_ma-tw_price_ma); var qt_sell1_fixed=qt_sell1-(qt_price_ma-tw_price_ma); //this week - next week - kaichang if (tw_sell1_fixed<nw_buy1_fixed && (nw_buy1_fixed-tw_sell1_fixed)/tw_sell1_fixed>jiacha_monitor['tw_nw']){ if (push_notification){ Log("次周_当周_套利机会:"+exname+" "+((nw_buy1_fixed-tw_sell1_fixed)/tw_sell1_fixed)+"@"); } if (risk_rate>keep_risk_rate && account.Stocks>0){ exchange.SetContractType("this_week"); exchange.SetDirection("buy"); var dealamount=$.perform_limited_order("buy",exchange,tw_sell1,trade_unit,false,"futures","buy"); if (dealamount>0){ exchange.SetContractType("next_week"); exchange.SetDirection("sell"); $.perform_limited_order("buy",exchange,nw_buy1,dealamount,true,"futures","sell"); } } } else if (nw_sell1_fixed<tw_buy1_fixed && (tw_buy1_fixed-nw_sell1_fixed)/nw_sell1_fixed>jiacha_monitor['tw_nw']){ if (push_notification){ Log("当周_次周_套利机会:"+exname+" "+((tw_buy1_fixed-nw_sell1_fixed)/nw_sell1_fixed)+"@"); } if (risk_rate>keep_risk_rate && account.Stocks>0){ exchange.SetContractType("next_week"); exchange.SetDirection("buy"); var dealamount=$.perform_limited_order("buy",exchange,nw_sell1,trade_unit,false,"futures","buy"); if (dealamount>0){ exchange.SetContractType("this_week"); exchange.SetDirection("sell"); $.perform_limited_order("buy",exchange,tw_buy1,dealamount,true,"futures","sell"); } } } //this week - quarter - kaichang else if (tw_sell1_fixed<qt_buy1_fixed && (qt_buy1_fixed-tw_sell1_fixed)/tw_sell1_fixed>jiacha_monitor['tw_qt']){ if (push_notification){ Log("季度_当周_套利机会:"+exname+" "+((qt_buy1_fixed-tw_sell1_fixed)/tw_sell1_fixed)+"@"); } if (risk_rate>keep_risk_rate && account.Stocks>0){ exchange.SetContractType("this_week"); exchange.SetDirection("buy"); var dealamount=$.perform_limited_order("buy",exchange,tw_sell1,trade_unit,false,"futures","buy"); if (dealamount>0){ exchange.SetContractType("quarter"); exchange.SetDirection("sell"); $.perform_limited_order("buy",exchange,qt_buy1,dealamount,true,"futures","sell"); } } } else if (qt_sell1_fixed<tw_buy1_fixed && (tw_buy1_fixed-qt_sell1_fixed)/qt_sell1_fixed>jiacha_monitor['tw_qt']){ if (push_notification){ Log("当周_季度_套利机会:"+exname+" "+((tw_buy1_fixed-qt_sell1_fixed)/qt_sell1_fixed)+"@"); } if (risk_rate>keep_risk_rate && account.Stocks>0){ exchange.SetContractType("quarter"); exchange.SetDirection("buy"); var dealamount=$.perform_limited_order("buy",exchange,qt_sell1,trade_unit,false,"futures","buy"); if (dealamount>0){ exchange.SetContractType("this_week"); exchange.SetDirection("sell"); $.perform_limited_order("buy",exchange,tw_buy1,dealamount,true,"futures","sell"); } } } //next week - quarter - kaichang else if (nw_sell1_fixed<qt_buy1_fixed && (qt_buy1_fixed-nw_sell1_fixed)/nw_sell1_fixed>jiacha_monitor['nw_qt']){ if (push_notification){ Log("季度_次周_套利机会:"+exname+" "+((qt_buy1_fixed-nw_sell1_fixed)/nw_sell1_fixed)+"@"); } if (risk_rate>keep_risk_rate && account.Stocks>0){ exchange.SetContractType("next_week"); exchange.SetDirection("buy"); var dealamount=$.perform_limited_order("buy",exchange,nw_sell1,trade_unit,false,"futures","buy"); if (dealamount>0){ exchange.SetContractType("quarter"); exchange.SetDirection("sell"); $.perform_limited_order("buy",exchange,qt_buy1,dealamount,true,"futures","sell"); } } } else if (qt_sell1_fixed<nw_buy1_fixed && (nw_buy1_fixed-qt_sell1_fixed)/qt_sell1_fixed>jiacha_monitor['nw_qt']){ if (push_notification){ Log("次周_季度_套利机会:"+exname+" "+((nw_buy1_fixed-qt_sell1_fixed)/qt_sell1_fixed)+"@"); } if (risk_rate>keep_risk_rate && account.Stocks>0){ exchange.SetContractType("quarter"); exchange.SetDirection("buy"); var dealamount=$.perform_limited_order("buy",exchange,qt_sell1,trade_unit,false,"futures","buy"); if (dealamount>0){ exchange.SetContractType("next_week"); exchange.SetDirection("sell"); $.perform_limited_order("buy",exchange,nw_buy1,dealamount,true,"futures","sell"); } } } //this week - next week - pingchang else if (Math.abs((nw_sell1_fixed-tw_buy1_fixed)/tw_buy1_fixed)<hulie_monitor['tw_nw'] && tw_zuoduo_zhangshu>0 && nw_zuokong_zhangshu>0){ var pingchang_zhangshu=Math.min(tw_zuoduo_zhangshu,nw_zuokong_zhangshu); exchange.SetContractType("this_week"); exchange.SetDirection("closebuy"); var dealamount=$.perform_limited_order("sell",exchange,tw_buy1,pingchang_zhangshu,false,"futures","closebuy"); if (dealamount>0){ exchange.SetContractType("next_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,nw_sell1,dealamount,true,"futures","closesell"); } } else if (Math.abs((tw_sell1_fixed-nw_buy1_fixed)/nw_buy1_fixed)<hulie_monitor['tw_nw'] && tw_zuokong_zhangshu>0 && nw_zuoduo_zhangshu>0){ var pingchang_zhangshu=Math.min(tw_zuokong_zhangshu,nw_zuoduo_zhangshu); exchange.SetContractType("next_week"); exchange.SetDirection("closebuy"); var dealamount=$.perform_limited_order("sell",exchange,nw_buy1,pingchang_zhangshu,false,"futures","closebuy"); if (dealamount>0){ exchange.SetContractType("this_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,tw_sell1,dealamount,true,"futures","closesell"); } } //this week - quarter - pingchang else if (Math.abs((qt_sell1_fixed-tw_buy1_fixed)/tw_buy1_fixed)<hulie_monitor['tw_qt'] && tw_zuoduo_zhangshu>0 && qt_zuokong_zhangshu>0){ var pingchang_zhangshu=Math.min(tw_zuoduo_zhangshu,qt_zuokong_zhangshu); exchange.SetContractType("this_week"); exchange.SetDirection("closebuy"); var dealamount=$.perform_limited_order("sell",exchange,tw_buy1,pingchang_zhangshu,false,"futures","closebuy"); if (dealamount>0){ exchange.SetContractType("quarter"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,qt_sell1,dealamount,true,"futures","closesell"); } } else if (Math.abs((tw_sell1_fixed-qt_buy1_fixed)/qt_buy1_fixed)<hulie_monitor['tw_qt'] && tw_zuokong_zhangshu>0 && qt_zuoduo_zhangshu>0){ var pingchang_zhangshu=Math.min(tw_zuokong_zhangshu,qt_zuoduo_zhangshu); exchange.SetContractType("quarter"); exchange.SetDirection("closebuy"); var dealamount=$.perform_limited_order("sell",exchange,qt_buy1,pingchang_zhangshu,false,"futures","closebuy"); if (dealamount>0){ exchange.SetContractType("this_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,tw_sell1,dealamount,true,"futures","closesell"); } } //next week - quarter - pingchang else if (Math.abs((qt_sell1_fixed-nw_buy1_fixed)/nw_buy1_fixed)<hulie_monitor['nw_qt'] && nw_zuoduo_zhangshu>0 && qt_zuokong_zhangshu>0){ var pingchang_zhangshu=Math.min(nw_zuoduo_zhangshu,qt_zuokong_zhangshu); exchange.SetContractType("next_week"); exchange.SetDirection("closebuy"); var dealamount=$.perform_limited_order("sell",exchange,nw_buy1,pingchang_zhangshu,false,"futures","closebuy"); if (dealamount>0){ exchange.SetContractType("quarter"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,qt_sell1,dealamount,true,"futures","closesell"); } } else if (Math.abs((nw_sell1_fixed-qt_buy1_fixed)/qt_buy1_fixed)<hulie_monitor['nw_qt'] && nw_zuokong_zhangshu>0 && qt_zuoduo_zhangshu>0){ var pingchang_zhangshu=Math.min(nw_zuokong_zhangshu,qt_zuoduo_zhangshu); exchange.SetContractType("quarter"); exchange.SetDirection("closebuy"); var dealamount=$.perform_limited_order("sell",exchange,qt_buy1,pingchang_zhangshu,false,"futures","closebuy"); if (dealamount>0){ exchange.SetContractType("next_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,nw_sell1,dealamount,true,"futures","closesell"); } } else{ //处理交割 var total_zuoduo=tw_zuoduo_zhangshu+nw_zuoduo_zhangshu+qt_zuoduo_zhangshu; var total_zuokong=tw_zuokong_zhangshu+nw_zuokong_zhangshu+qt_zuokong_zhangshu; if (total_zuoduo!==total_zuokong){ if (total_zuoduo>total_zuokong){ var diff_num=total_zuoduo-total_zuokong; //强制平多 Log("开始强制平多:"+diff_num+'@'); if (qt_zuoduo_zhangshu>=diff_num){ exchange.SetContractType("quarter"); exchange.SetDirection("closebuy"); $.perform_limited_order("sell",exchange,qt_buy1,diff_num,true,"futures","closebuy"); }else{ exchange.SetContractType("quarter"); exchange.SetDirection("closebuy"); $.perform_limited_order("sell",exchange,qt_buy1,qt_zuoduo_zhangshu,true,"futures","closebuy"); var diff2=diff_num-qt_zuoduo_zhangshu; if (nw_zuoduo_zhangshu>=diff2){ exchange.SetContractType("next_week"); exchange.SetDirection("closebuy"); $.perform_limited_order("sell",exchange,nw_buy1,diff2,true,"futures","closebuy"); }else{ exchange.SetContractType("next_week"); exchange.SetDirection("closebuy"); $.perform_limited_order("sell",exchange,nw_buy1,nw_zuoduo_zhangshu,true,"futures","closebuy"); var diff3=diff2-nw_zuoduo_zhangshu; if (tw_zuoduo_zhangshu>=diff3){ exchange.SetContractType("this_week"); exchange.SetDirection("closebuy"); $.perform_limited_order("sell",exchange,tw_buy1,diff3,true,"futures","closebuy"); }else{ exchange.SetContractType("this_week"); exchange.SetDirection("closebuy"); $.perform_limited_order("sell",exchange,tw_buy1,tw_zuoduo_zhangshu,true,"futures","closebuy"); } } } } else if (total_zuokong>total_zuoduo){ var diff_num=total_zuokong-total_zuoduo; //强制平空 Log("开始强制平空:"+diff_num+'@'); if (qt_zuokong_zhangshu>=diff_num){ exchange.SetContractType("quarter"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,qt_sell1,diff_num,true,"futures","closesell"); }else{ exchange.SetContractType("quarter"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,qt_sell1,qt_zuokong_zhangshu,true,"futures","closesell"); var diff2=diff_num-qt_zuokong_zhangshu; if (nw_zuokong_zhangshu>=diff2){ exchange.SetContractType("next_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,nw_sell1,diff2,true,"futures","closesell"); }else{ exchange.SetContractType("next_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,nw_sell1,nw_zuokong_zhangshu,true,"futures","closesell"); var diff3=diff2-nw_zuokong_zhangshu; if (tw_zuokong_zhangshu>=diff3){ exchange.SetContractType("this_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,tw_sell1,diff3,true,"futures","closesell"); }else{ exchange.SetContractType("this_week"); exchange.SetDirection("closesell"); $.perform_limited_order("sell",exchange,tw_sell1,tw_zuokong_zhangshu,true,"futures","closesell"); } } } } } } LogStatus( "合约近期均价="+tw_price_ma+'/'+nw_price_ma+'/'+qt_price_ma+"\n"+ '-----------------------------------------------------------\n'+ '次周_当周_开仓差价='+(nw_buy1_fixed-tw_sell1_fixed)/tw_sell1_fixed+'/'+jiacha_monitor['tw_nw']+"\n"+ '当周_次周_开仓差价='+(tw_buy1_fixed-nw_sell1_fixed)/nw_sell1_fixed+'/'+jiacha_monitor['tw_nw']+"\n"+ '季度_当周_开仓差价='+(qt_buy1_fixed-tw_sell1_fixed)/tw_sell1_fixed+'/'+jiacha_monitor['tw_qt']+"\n"+ '当周_季度_开仓差价='+(tw_buy1_fixed-qt_sell1_fixed)/qt_sell1_fixed+'/'+jiacha_monitor['tw_qt']+"\n"+ '季度_次周_开仓差价='+(qt_buy1_fixed-nw_sell1_fixed)/nw_sell1_fixed+'/'+jiacha_monitor['nw_qt']+"\n"+ '次周_季度_开仓差价='+(nw_buy1_fixed-qt_sell1_fixed)/qt_sell1_fixed+'/'+jiacha_monitor['nw_qt']+"\n"+ '-----------------------------------------------------------\n'+ '次周_当周_平仓差价='+Math.abs((nw_sell1_fixed-tw_buy1_fixed)/tw_buy1_fixed)+'/'+hulie_monitor['tw_nw']+"\n"+ '当周_次周_平仓差价='+Math.abs((tw_sell1_fixed-nw_buy1_fixed)/nw_buy1_fixed)+'/'+hulie_monitor['tw_nw']+"\n"+ '季度_当周_平仓差价='+Math.abs((qt_sell1_fixed-tw_buy1_fixed)/tw_buy1_fixed)+'/'+hulie_monitor['tw_qt']+"\n"+ '当周_季度_平仓差价='+Math.abs((tw_sell1_fixed-qt_buy1_fixed)/qt_buy1_fixed)+'/'+hulie_monitor['tw_qt']+"\n"+ '季度_次周_平仓差价='+Math.abs((qt_sell1_fixed-nw_buy1_fixed)/nw_buy1_fixed)+'/'+hulie_monitor['nw_qt']+"\n"+ '次周_季度_平仓差价='+Math.abs((nw_sell1_fixed-qt_buy1_fixed)/qt_buy1_fixed)+'/'+hulie_monitor['nw_qt']+"\n"+ '-----------------------------------------------------------\n'+ '账户权益='+account_rights+'\n'+ '已用保证金='+keep_deposit+'\n'+ '可用保证金='+account.Stocks+'\n'+ '保证金率='+risk_rate+'\n'+ '当周做多/做空张数='+tw_zuoduo_zhangshu+'/'+tw_zuokong_zhangshu+'\n'+ '次周做多/做空张数='+nw_zuoduo_zhangshu+'/'+nw_zuokong_zhangshu+'\n'+ '季度做多/做空张数='+qt_zuoduo_zhangshu+'/'+qt_zuokong_zhangshu+'\n'+ '期货仓位='+position.length+'\n'+ '未完成订单='+f_orders.length+'\n'+ '当周做多/做空均价='+tw_zuoduo_avg_price+'/'+tw_zuokong_avg_price+'\n'+ '次周做多/做空均价='+nw_zuoduo_avg_price+'/'+nw_zuokong_avg_price+'\n'+ '季度做多/做空均价='+qt_zuoduo_avg_price+'/'+qt_zuokong_avg_price+'\n'+ '♜轮询次数: '+total_loop+'\n'+ '♜更新时间: '+$.get_ChinaTimeString()+'\n'+ '♜微信: alinwo(验证消息:botvs) #0000ff'+'\n'+ '♜霖霖量化-实盘策略: http://www.pcclean.io/quant #ff0000'+'\n' ); if (total_loop%200===0){ LogProfit(account_rights); } total_loop++; Sleep(wait_ms); }//while end }
GaoliangEste homem é um mentiroso.
Wufuhao100wOlá, o que é obtido na linha 50-53 não é a profundidade e o preço do produto? exchange.SetContractType (("this_week"); var tw_depth=_C ((exchange.GetDepth); Var tw_sell1=tw_depth.Asks[0].Price; var tw_buy1=tw_depth.Bids[0].Price;
604303746O que é que se passa?