Strategi lindung nilai OKEx

Penulis:reboting, Tanggal: 2019-07-17 22:32:44
Tag:Hedge

Apa itu hedging jangka panjang? Swap jangka panjang adalah pembentukan jumlah yang sama, posisi perdagangan di arah yang berlawanan pada kontrak bulan yang berbeda dari varietas masa depan yang sama, akhirnya dengan cara hedging atau pengiriman, untuk mendapatkan keuntungan. Swap jangka panjang yang paling sederhana adalah membeli varietas masa depan yang dekat dan menjual varietas masa depan yang lebih lama. Misalnya, kontrak BTC mingguan dan mingguan Okex.

Bagaimana cara melakukan hedging jangka panjang di Okex? Pada okex, harga kontrak mingguan, mingguan dan kuartal sering terjadi perbedaan harga, jika perbedaan harga mencapai atau melebihi batas tertentu, maka dapat di-hedge cross-period, dan kemudian di-reverse-breakeven ketika perbedaan harga hilang, sehingga keuntungan diperoleh dengan memanfaatkan keuntungan yang wajar dari perbedaan harga. Sebagai contoh, BTC kontrak mingguan dan mingguan yang ada dan harga kontrak mingguan yang berbeda lebih rendah dari harga kontrak mingguan, ketika perbedaan harga mencapai batas yang ditetapkan, investor dapat melakukan kontrak multi-minggu dan melakukan kontrak mingguan kosong untuk melakukan perbandingan, sehingga harga kontrak mingguan dan mingguan yang sama kembali, dan mendapatkan keuntungan.

Risiko dari hedging jangka panjang: Karena kedua kontrak memiliki waktu pengiriman yang berbeda, kerugian dapat terjadi jika perbedaan harga tidak dapat dipulihkan ketika kontrak baru-baru ini memaksa pengiriman.

Fungsi dan karakteristik implementasi strategi: Dukungan untuk Hedge OKEX Mendukung kontrak mingguan, mingguan dan kuartal OKEX Mendukung semua jenis perdagangan kontrak OKEX (BTC, BCH, EOS, BSV, ETH, dll.)

Catatan khusus: Kebijakan ini membutuhkan repositori template Botvstools untuk berjalan! Anda dapat mengunduh template di sini:https://www.pcclean.io/45gd(Jika Anda mengunduh file zip, Anda akan memiliki dua file js setelah dikompres, satu adalah kebijakan dan satu adalah template library, perhatikan perbedaannya)

Parameter strategi menjelaskan: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
}


Berkaitan

Lebih banyak

GAOLIANGOrang ini adalah penipu.

Wufuhao100wHalo, apa yang diperoleh pada baris 50-53 bukan kedalaman dan harga barang yang ada? apakah sudah didefinisikan sebelumnya jenis yang diperoleh sebagai kontrak adalah harga dan kedalaman kontrak yang sesuai? 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;

604303746Apa yang terjadi? Bisakah Anda memberitahuku?