ایف ایم زیڈ کی عوامی حکمت عملی کا شکریہ، گارڈز کی حمایت کا شکریہ! اس کے علاوہ، اس نے اپنی مرضی کے مطابق دو تبدیلیاں کی ہیں: 1 ، کیونکہ بہت سے دوستوں نے پہلے سے طے شدہ طور پر 10 گنا اور 20 گنا فائدہ اٹھایا ہے ، اور یہ حکمت عملی پوری پوزیشن موڈ کے لئے ہے ، ایک سکے کی بھوک کی پوزیشن کو ختم کردیا جائے گا۔ لہذا ایک Max_amount شامل کریں ، انفرادی کرنسیوں کی خریداری کی مقدار اس تعداد سے زیادہ نہیں ہوگی ، جس سے بھوک کی پوزیشن کو روکا جاسکے۔ 2، اگر سکوں کے تالاب میں بہت زیادہ اونچائی اور اونچائی ہے تو ، خاص طور پر منفرد سکوں ، سب کو نیچے گھسیٹنے کے لئے آسان ہے ، مجموعی حکمت عملی کو ناکام بنانا آسان ہے۔ لہذا جب میں انڈیکس کا حساب کرتا ہوں تو میں ایک اعلی ترین اسکور کو ہٹا دیتا ہوں ، ایک کم ترین اسکور کو ہٹا دیتا ہوں ، اور اس کا نتیجہ زیادہ منصفانہ ہوتا ہے۔ اس کے علاوہ ، یہ بھی کہا گیا ہے کہ اس طرح کے معاملات میں ، یہ ممکن نہیں ہے کہ آپ کو ایک بار پھر اس طرح کے معاملات کا سامنا کرنا پڑے گا۔ نوٹ: شرائط کی وجہ سے، اس پالیسی کا دوبارہ جائزہ نہیں لیا گیا ہے، یہ صرف حوالہ کے لئے ہے، کسی بھی نقصان کے لئے ذمہ دار نہیں ہے!
اس حکمت عملی کے تحت، آپ کو ایک جوڑی میں بی ٹی سی شامل کرنے کی ضرورت ہوگی۔ پچھلے دو مہینوں کی کارکردگی (تقریبا 3 گنا تک لیورج ، اعداد و شمار کو 4.8 تک اپ ڈیٹ کیا گیا ہے):
1۔ مارکیٹ اور اکاؤنٹ کو اپ ڈیٹ کریں ، پہلی بار چلنے پر ابتدائی قیمت ریکارڈ کی جائے گی ((نئی شامل کردہ کرنسیوں کا حساب شامل ہونے کے وقت کے مطابق کیا جاتا ہے) 2. انڈیکس کو اپ ڈیٹ کریں ، انڈیکس کا مطلب ہے سکے - بٹ کوائن قیمت کا اشاریہ = mean ((sum)) ((بٹ کوائن کی قیمت / بٹ کوائن کی قیمت) / ((بٹ کوائن کی ابتدائی قیمت / بٹ کوائن کی ابتدائی قیمت)) 3. انحراف انڈیکس کے مطابق زیادہ کام کرنے کا فیصلہ ، انحراف کے سائز کے مطابق پوزیشنوں کا فیصلہ 4۔ آرڈر کرنا اور مقدار کا فیصلہ آئس ماؤنٹین کی طرف سے کیا جاتا ہے اور قیمت کے مطابق کیا جاتا ہے۔اگر آپ کو کوئی مسئلہ ہے تو ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے۔ 5.再次循环
نوٹ کریں کہ اگر کوئی کرنسی آزادانہ مارکیٹ سے باہر نکلتی ہے ، جیسے کہ انڈیکس کے مقابلے میں کئی گنا بڑھتی ہے ، تو اس کرنسی پر بڑی تعداد میں خالی پوزیشنیں جمع ہوجائیں گی ، اور اسی طرح کے بڑے پیمانے پر گرنے سے حکمت عملی کو بہت زیادہ کام کرنے پر مجبور کیا جاسکتا ہے۔
//向上偏离最大的币的索引 var highIndex=0; //向下偏离最大的币的索引 var lowIndex=0; var trade_symbols = Trade_symbols.split(',') var symbols = trade_symbols var index = 1 //指数 if(trade_symbols.indexOf('BTC')<0){ symbols = trade_symbols.concat(['BTC']) } var update_profit_time = 0 var assets = {} var trade_info = {} var exchange_info = HttpQuery('https://fapi.binance.com/fapi/v1/exchangeInfo') if(!exchange_info){ Log('无法连接网络') return } exchange_info = JSON.parse(exchange_info) for (var i=0; i<exchange_info.symbols.length; i++){ if(symbols.indexOf(exchange_info.symbols[i].baseAsset) > -1){ assets[exchange_info.symbols[i].baseAsset] = {amount:0, hold_price:0, value:0, bid_price:0, ask_price:0, btc_price:0, btc_change:1,btc_diff:0, realised_profit:0, margin:0, unrealised_profit:0} trade_info[exchange_info.symbols[i].baseAsset] = {minQty:parseFloat(exchange_info.symbols[i].filters[1].minQty), priceSize:parseInt((Math.log10(1.1/parseFloat(exchange_info.symbols[i].filters[0].tickSize)))), amountSize:parseInt((Math.log10(1.1/parseFloat(exchange_info.symbols[i].filters[1].stepSize)))) } } } assets.USDT = {unrealised_profit:0, margin:0, margin_balance:0, total_balance:0, leverage:0, update_time:0} function updateAccount(){ //更新账户和持仓 var account = exchange.GetAccount() var pos = exchange.GetPosition() if (account == null || pos == null ){ Log('update account time out') return } assets.USDT.update_time = Date.now() for(var i=0; i<trade_symbols.length; i++){ assets[trade_symbols[i]].margin = 0 assets[trade_symbols[i]].unrealised_profit = 0 assets[trade_symbols[i]].hold_price = 0 assets[trade_symbols[i]].amount = 0 assets[trade_symbols[i]].unrealised_profit = 0 } for(var j=0; j<account.Info.positions.length; j++){ var pair = account.Info.positions[j].symbol var coin = pair.slice(0,pair.length-4) if(symbols.indexOf(coin) < 0){continue} assets[coin].margin = parseFloat(account.Info.positions[j].initialMargin) + parseFloat(account.Info.positions[j].maintMargin) assets[coin].unrealised_profit = parseFloat(account.Info.positions[j].unrealizedProfit) } assets.USDT.margin = _N(parseFloat(account.Info.totalInitialMargin) + parseFloat(account.Info.totalMaintMargin),2) assets.USDT.margin_balance = _N(parseFloat(account.Info.totalMarginBalance),2) assets.USDT.total_balance = _N(parseFloat(account.Info.totalWalletBalance),2) assets.USDT.unrealised_profit = _N(parseFloat(account.Info.totalUnrealizedProfit),2) assets.USDT.leverage = _N(assets.USDT.margin/assets.USDT.total_balance,2) if(pos.length > 0){ pos = JSON.parse(exchange.GetRawJSON()) for(var k=0; k<pos.length; k++){ var pair = pos[k].symbol var coin = pair.slice(0,pair.length-4) if(symbols.indexOf(coin) < 0){continue} assets[coin].hold_price = parseFloat(pos[k].entryPrice) assets[coin].amount = parseFloat(pos[k].positionAmt) assets[coin].unrealised_profit = parseFloat(pos[k].unRealizedProfit) } } } function updateIndex(){ //更新指数 var init_prices = {} if(!_G('init_prices') || Reset){ for(var i=0; i<trade_symbols.length; i++){ init_prices[trade_symbols[i]] = (assets[trade_symbols[i]].ask_price+assets[trade_symbols[i]].bid_price)/(assets.BTC.ask_price+assets.BTC.bid_price) } Log('保存启动时的价格') _G('init_prices',init_prices) }else{ init_prices = _G('init_prices') var temp = 0 highIndex=0; lowIndex=0; var highChange;var lowChange; //本次计算找出最大偏离的高低分 for(var i=0; i<trade_symbols.length; i++){ assets[trade_symbols[i]].btc_price = (assets[trade_symbols[i]].ask_price+assets[trade_symbols[i]].bid_price)/(assets.BTC.ask_price+assets.BTC.bid_price) if(!init_prices[trade_symbols[i]]){ Log('添加新的币种',trade_symbols[i]) init_prices[trade_symbols[i]] = assets[trade_symbols[i]].btc_price _G('init_prices',init_prices) } assets[trade_symbols[i]].btc_change = _N(assets[trade_symbols[i]].btc_price/init_prices[trade_symbols[i]],4) if(i==0){ highChange=assets[trade_symbols[i]].btc_change; lowChange=assets[trade_symbols[i]].btc_change; } if(highChange<assets[trade_symbols[i]].btc_change){ highChange=assets[trade_symbols[i]].btc_change; highIndex=i; } if(lowChange>assets[trade_symbols[i]].btc_change){ lowChange=assets[trade_symbols[i]].btc_change; lowIndex=i; } } for(var i=0; i<trade_symbols.length; i++){ assets[trade_symbols[i]].btc_price = (assets[trade_symbols[i]].ask_price+assets[trade_symbols[i]].bid_price)/(assets.BTC.ask_price+assets.BTC.bid_price) assets[trade_symbols[i]].btc_change = _N(assets[trade_symbols[i]].btc_price/init_prices[trade_symbols[i]],4) if(i!=lowIndex&&i!=highIndex){ //去掉高低分的影响 temp += assets[trade_symbols[i]].btc_change } } //因为去掉了最高最低分,所以减2 index = _N(temp/(trade_symbols.length-2), 4) } } function updateTick(){ //更新行情 var ticker = HttpQuery('https://fapi.binance.com/fapi/v1/ticker/bookTicker') try { ticker = JSON.parse(ticker) }catch(e){ Log('get ticker time out') return } for(var i=0; i<ticker.length; i++){ var pair = ticker[i].symbol var coin = pair.slice(0,pair.length-4) if(symbols.indexOf(coin) < 0){continue} assets[coin].ask_price = parseFloat(ticker[i].askPrice) assets[coin].bid_price = parseFloat(ticker[i].bidPrice) assets[coin].ask_value = _N(assets[coin].amount*assets[coin].ask_price, 2) assets[coin].bid_value = _N(assets[coin].amount*assets[coin].bid_price, 2) } updateIndex() for(var i=0; i<trade_symbols.length; i++){ assets[trade_symbols[i]].btc_diff = _N(assets[trade_symbols[i]].btc_change - index, 4) } } function trade(symbol, dirction, value){ //交易 if(Date.now()-assets.USDT.update_time > 10*1000){ Log('更新账户延时,不交易') return } var price = dirction == 'sell' ? assets[symbol].bid_price : assets[symbol].ask_price var amount = _N(Math.min(value,Ice_value)/price, trade_info[symbol].amountSize) if(amount <= trade_info[symbol].minQty){ Log(symbol, '合约价值偏离或冰山委托订单的大小设置过小,达不到最小成交, 至少需要: ', _N(trade_info[symbol].minQty*price,0)) return } exchange.IO("currency", symbol+'_'+'USDT') exchange.SetContractType('swap') exchange.SetDirection(dirction) var f = dirction == 'buy' ? 'Buy' : 'Sell' var id = exchange[f](price, amount, symbol) if(id){ exchange.CancelOrder(id) //订单会立即撤销 } } function updateStatus(){ //状态栏信息 var table = {type: 'table', title: '交易对信息更新', cols: ['Symbol', 'amount', 'hold_price', 'price', 'diff', 'value', 'margin', 'unrealised_profit'], rows: []} var infoList; for (var i=0; i<symbols.length; i++){ var price = _N((assets[symbols[i]].ask_price + assets[symbols[i]].bid_price)/2, trade_info[symbols[i]].priceSize) var value = _N((assets[symbols[i]].ask_value + assets[symbols[i]].bid_value)/2, 2) if(i==lowIndex){ infoList = [symbols[i]+"Low", assets[symbols[i]].amount, assets[symbols[i]].hold_price, price, assets[symbols[i]].btc_diff, value, _N(assets[symbols[i]].margin,3), _N(assets[symbols[i]].unrealised_profit,3)] }else if(i==highIndex){ infoList = [symbols[i]+"High", assets[symbols[i]].amount, assets[symbols[i]].hold_price, price, assets[symbols[i]].btc_diff, value, _N(assets[symbols[i]].margin,3), _N(assets[symbols[i]].unrealised_profit,3)] }else{ infoList = [symbols[i], assets[symbols[i]].amount, assets[symbols[i]].hold_price, price, assets[symbols[i]].btc_diff, value, _N(assets[symbols[i]].margin,3), _N(assets[symbols[i]].unrealised_profit,3)] } table.rows.push(infoList) } var logString = _D() + ' ' + JSON.stringify(assets.USDT) + ' Index:' + index + '\n' LogStatus(logString + '`' + JSON.stringify(table) + '`') if(Date.now()-update_profit_time > Log_profit_interval*1000){ LogProfit(_N(assets.USDT.margin_balance,3)) update_profit_time = Date.now() } } function onTick(){ //策略逻辑部分 for(var i=0; i<trade_symbols.length; i++){ var symbol = trade_symbols[i] if(assets[symbol].ask_price == 0){ continue } var aim_value = -Trade_value * _N(assets[symbol].btc_diff/0.01,1) if(i!=lowIndex&&i!=highIndex){ //高低分的货币不交易 if(aim_value - assets[symbol].ask_value > Adjust_value&&assets[symbol].ask_value<Max_amount){ trade(symbol,'buy', aim_value - assets[symbol].ask_value) } if(aim_value - assets[symbol].bid_value < -Adjust_value&&assets[symbol].bid_value<Max_amount){ trade(symbol,'sell', -(aim_value - assets[symbol].bid_value)) } } } } function main() { while(true){ updateAccount() updateTick() onTick() updateStatus() Sleep(Interval*1000) } }
qq813380629یہ عام طور پر کتنا فائدہ اٹھاتا ہے اور کتنا پیسہ خرچ کرتا ہے؟
علاقائی کلاس کی مقدارایک واحد کرنسی کی سب سے بڑی مالیت ہے
ہلکے بادلہیلو، ایک سوال پوچھنا چاہتا ہوں، Max_amount یہ ہر ٹریڈنگ جوڑی کے لئے زیادہ سے زیادہ ہولڈنگ ویلیو یا زیادہ سے زیادہ ضمانت کی رقم ہے؟ شکریہ.