এফএমজেডের উন্মুক্ত কৌশল এবং গার্ডের সমর্থনের জন্য ধন্যবাদ! আমি নিজেও দুটি পরিবর্তন করেছিঃ ১, কারণ অনেক বন্ধু ডিফল্টরূপে ১০ গুণ বা ২০ গুণ লিভারেজ করে, এবং এই কৌশলটি পুরো স্টকের মোড, একটি মুদ্রা বোল্ডিংয়ের জন্য, এটি ধ্বংস হয়ে যাবে। সুতরাং একটি Max_amount যুক্ত করুন, যাতে একক মুদ্রা ক্রয়ের পরিমাণ এই সংখ্যা ছাড়িয়ে না যায়, বোল্ডিংয়ের প্রতিরোধ করে। ২। যদি মুদ্রা পুকুরের মধ্যে একটি সুপার-টপ ওভার-ডাউন থাকে, উদাহরণস্বরূপ, একক মুদ্রা, এটি সহজেই সবাইকে টেনে আনতে পারে এবং সামগ্রিক কৌশলটি সহজেই ব্যর্থ হয়। সুতরাং আমি সূচকটি গণনা করার সময় একটি সর্বোচ্চ স্কোর সরিয়ে নিই, একটি সর্বনিম্ন স্কোর সরিয়ে নিই, সূচকটি আরও ন্যায্য। তবে, যদি আপনি একটি নতুন মুদ্রা কিনতে চান, তবে আপনি অবশ্যই এটি ব্যবহার করতে পারেন। বিঃদ্রঃঃ এই নীতিটি সীমাবদ্ধতার কারণে পুনরায় পরীক্ষা করা হয়নি, শুধুমাত্র রেফারেন্সের জন্য, ক্ষতির জন্য দায়বদ্ধ নয়!
যে মুদ্রার মুদ্রার দাম শ্যাংকি-বিটকয়েন মূল্য সূচকের উপরে, যে মুদ্রার দাম সূচকের নীচে, তার বিচ্যুতি যত বেশি হবে, অবস্থান তত বেশি হবে। এই কৌশলটি কোনও হেজিং ছাড়াই বিটিসি যুক্ত করতে পারে) । গত দুই মাসের পারফরম্যান্স (প্রায় 3 গুণ লিভারেজ, ডেটা আপডেট হয়েছে 4.8):
1. বাজারের আপডেট এবং অ্যাকাউন্টের হোল্ডিং, প্রথমবারের জন্য চলমান প্রাথমিক মূল্য রেকর্ড করা হবে ((নতুন যোগ করা মুদ্রা যোগ করার সময় অনুযায়ী গণনা করা হয়) ২. সূচক আপডেট করুন, সূচকটি হ'ল শঙ্কু-বিটকয়েন মূল্য সূচক = mean ((sum)) শঙ্কু মূল্য / বিটকয়েন মূল্য) / ((শঙ্কু প্রাথমিক মূল্য / বিটকয়েন প্রাথমিক মূল্য)) ৩. বিচ্যুতি সূচক অনুসারে বেশি কাজ করার সিদ্ধান্ত নিন, বিচ্যুতির আকার অনুসারে অবস্থান নির্ধারণ করুন 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) } }
৮১৩৩৮০৬২৯এই সাধারণ লিভারেজটি কত টাকা খরচ করতে পারে?
জেলা শ্রেণীর পরিমাণএকটি মুদ্রার সর্বোচ্চ ধার্য মূল্য
হালকা মেঘহ্যালো, আমি আপনাকে একটি প্রশ্ন করতে চাই। Max_amount এই হল প্রতিটি লেনদেনের জোড়ার সর্বাধিক হোল্ডিং মূল্য বা সর্বাধিক গ্যারান্টি পরিমাণ? ধন্যবাদ.