ট্রান্সপ্লান্টঃhttps://github.com/richox/okcoin-leeks-reaper
মূল লেখকের মতে, এই পদ্ধতির জন্য যে খরচ হয়, তা শেষ হয়ে যায়, আমি শুধু ট্রান্সপ্ল্যান্ট করেছি, কোনো টেস্ট নেই, শিখতে আগ্রহী। উদ্ভাবক কোয়ালিফাইড টিক-স্তরের পুনরাবৃত্তি গভীরতা এবং ট্রেডগুলির পুনরাবৃত্তি সমর্থন করে, যা সরাসরি পুনরাবৃত্তি শেখার কৌশলগত যুক্তি করতে পারে
নীচে মূল বিবরণ দেওয়া হলঃ
এটি OKCoin বিটকয়েন ট্রেডিং প্ল্যাটফর্মের একটি হাই-ফ্রিকোয়েন্সি ট্রেডিং রোবট প্রোগ্রাম, যা জুন ২০১৬ থেকে কৌশলটির মৌলিক রূপান্তর থেকে শুরু করে ২০১৭ সালের জানুয়ারির মাঝামাঝি পর্যন্ত সফলভাবে প্রাথমিকভাবে বিনিয়োগ করা ৬০০০ টাকার পরিমাণকে ২৫০০০০ টাকায় পরিণত করেছে।
এই রোবট প্রোগ্রাম দুটি প্রধান কৌশল উপর ভিত্তি করে তৈরি করা হয়ঃ
এই পদ্ধতিটি হ'ল পজিশনের ভারসাম্য, অর্থাৎ (মূলধন + অর্থায়ন = মুদ্রা) যাতে পজিশনের 50% সময়ে নেট সম্পদ দামের সাথে ওঠানামা না করে এবং প্রবণতা ওঠানামা হওয়ার সময়ও গ্যারান্টি দেয়।ঝাঁপিয়ে পড়ে।。
এই ভিডিওটি একটি ভিডিও বার্তার মাধ্যমে প্রকাশ করা হয়েছে।
ধন্যবাদ OKCoin:
বিটিসিঃ 3QFn1qfZMhMQ4FhgENR7fha3T8ZVw1bEeU
/*backtest start: 2019-09-05 00:00:00 end: 2019-09-05 22:00:00 period: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT","fee":[0,0]}] mode: 1 */ function LeeksReaper() { var self = {} self.numTick = 0 self.lastTradeId = 0 self.vol = 0 self.askPrice = 0 self.bidPrice = 0 self.orderBook = {Asks:[], Bids:[]} self.prices = [] self.tradeOrderId = 0 self.p = 0.5 self.account = null self.preCalc = 0 self.preNet = 0 self.updateTrades = function() { var trades = _C(exchange.GetTrades) if (self.prices.length == 0) { while (trades.length == 0) { trades = trades.concat(_C(exchange.GetTrades)) } for (var i = 0; i < 15; i++) { self.prices[i] = trades[trades.length - 1].Price } } self.vol = 0.7 * self.vol + 0.3 * _.reduce(trades, function(mem, trade) { // Huobi not support trade.Id if ((trade.Id > self.lastTradeId) || (trade.Id == 0 && trade.Time > self.lastTradeId)) { self.lastTradeId = Math.max(trade.Id == 0 ? trade.Time : trade.Id, self.lastTradeId) mem += trade.Amount } return mem }, 0) } self.updateOrderBook = function() { var orderBook = _C(exchange.GetDepth) self.orderBook = orderBook if (orderBook.Bids.length < 3 || orderBook.Asks.length < 3) { return } self.bidPrice = orderBook.Bids[0].Price * 0.618 + orderBook.Asks[0].Price * 0.382 + 0.01 self.askPrice = orderBook.Bids[0].Price * 0.382 + orderBook.Asks[0].Price * 0.618 - 0.01 self.prices.shift() self.prices.push(_N((orderBook.Bids[0].Price + orderBook.Asks[0].Price) * 0.35 + (orderBook.Bids[1].Price + orderBook.Asks[1].Price) * 0.1 + (orderBook.Bids[2].Price + orderBook.Asks[2].Price) * 0.05)) } self.balanceAccount = function() { var account = exchange.GetAccount() if (!account) { return } self.account = account var now = new Date().getTime() if (self.orderBook.Bids.length > 0 && now - self.preCalc > (CalcNetInterval * 1000)) { self.preCalc = now var net = _N(account.Balance + account.FrozenBalance + self.orderBook.Bids[0].Price * (account.Stocks + account.FrozenStocks)) if (net != self.preNet) { self.preNet = net LogProfit(net) } } self.btc = account.Stocks self.cny = account.Balance self.p = self.btc * self.prices[self.prices.length-1] / (self.btc * self.prices[self.prices.length-1] + self.cny) var balanced = false if (self.p < 0.48) { Log("开始平衡", self.p) self.cny -= 300 if (self.orderBook.Bids.length >0) { exchange.Buy(self.orderBook.Bids[0].Price + 0.00, 0.01) exchange.Buy(self.orderBook.Bids[0].Price + 0.01, 0.01) exchange.Buy(self.orderBook.Bids[0].Price + 0.02, 0.01) } } else if (self.p > 0.52) { Log("开始平衡", self.p) self.btc -= 0.03 if (self.orderBook.Asks.length >0) { exchange.Sell(self.orderBook.Asks[0].Price - 0.00, 0.01) exchange.Sell(self.orderBook.Asks[0].Price - 0.01, 0.01) exchange.Sell(self.orderBook.Asks[0].Price - 0.02, 0.01) } } Sleep(BalanceTimeout) var orders = exchange.GetOrders() if (orders) { for (var i = 0; i < orders.length; i++) { if (orders[i].Id != self.tradeOrderId) { exchange.CancelOrder(orders[i].Id) } } } } self.poll = function() { self.numTick++ self.updateTrades() self.updateOrderBook() self.balanceAccount() var burstPrice = self.prices[self.prices.length-1] * BurstThresholdPct var bull = false var bear = false var tradeAmount = 0 if (self.account) { LogStatus(self.account, 'Tick:', self.numTick, ', lastPrice:', self.prices[self.prices.length-1], ', burstPrice: ', burstPrice) } if (self.numTick > 2 && ( self.prices[self.prices.length-1] - _.max(self.prices.slice(-6, -1)) > burstPrice || self.prices[self.prices.length-1] - _.max(self.prices.slice(-6, -2)) > burstPrice && self.prices[self.prices.length-1] > self.prices[self.prices.length-2] )) { bull = true tradeAmount = self.cny / self.bidPrice * 0.99 } else if (self.numTick > 2 && ( self.prices[self.prices.length-1] - _.min(self.prices.slice(-6, -1)) < -burstPrice || self.prices[self.prices.length-1] - _.min(self.prices.slice(-6, -2)) < -burstPrice && self.prices[self.prices.length-1] < self.prices[self.prices.length-2] )) { bear = true tradeAmount = self.btc } if (self.vol < BurstThresholdVol) { tradeAmount *= self.vol / BurstThresholdVol } if (self.numTick < 5) { tradeAmount *= 0.8 } if (self.numTick < 10) { tradeAmount *= 0.8 } if ((!bull && !bear) || tradeAmount < MinStock) { return } var tradePrice = bull ? self.bidPrice : self.askPrice while (tradeAmount >= MinStock) { var orderId = bull ? exchange.Buy(self.bidPrice, tradeAmount) : exchange.Sell(self.askPrice, tradeAmount) Sleep(200) if (orderId) { self.tradeOrderId = orderId var order = null while (true) { order = exchange.GetOrder(orderId) if (order) { if (order.Status == ORDER_STATE_PENDING) { exchange.CancelOrder(orderId) Sleep(200) } else { break } } } self.tradeOrderId = 0 tradeAmount -= order.DealAmount tradeAmount *= 0.9 if (order.Status == ORDER_STATE_CANCELED) { self.updateOrderBook() while (bull && self.bidPrice - tradePrice > 0.1) { tradeAmount *= 0.99 tradePrice += 0.1 } while (bear && self.askPrice - tradePrice < -0.1) { tradeAmount *= 0.99 tradePrice -= 0.1 } } } } self.numTick = 0 } return self } function main() { var reaper = LeeksReaper() while (true) { reaper.poll() Sleep(TickInterval) } }
হিপ-হ্যাপের রাজাএই কৌশলটি ব্যর্থ হয়েছে, এবং মুনাফা আসে উচ্চ-প্রবাহের স্বল্প-প্রতিশোধিত আয়ের মাধ্যমে, যা শূন্য প্রসেসিং ফি থেকে আসে।
কোংবাই ৯৭৯ self.vol到底是个啥?是一个ticker期间内所有交易量的总和吗?
dayTrader2018for (var i = 0; i < 15; i++) { self.prices[i] = trades[trades.length - 1].Price }; এখানে কি একটু সমস্যা আছে, তাই না দামের অ্যারেতে প্রতিটি উপাদান সর্বশেষ লেনদেনের মূল্য?
কুয়ো ৭০৩৫আমার বেশ কয়েকটি এক্সচেঞ্জ আছে, যেখানে আমি কোন প্রসেসিং ফি নিই না এবং গভীরতার সাথে লেনদেন করি। আপনি কি এই কৌশলটি চেষ্টা করতে পারেন? দয়া করে আমাকে নির্দেশ দিন, আমি এক্সচেঞ্জ অ্যাকাউন্টের জন্য আবেদন করতে সাহায্য করতে পারি।
বিজাসুওদুর্দান্ত, দুর্ভাগ্যক্রমে এটি কাজ করে না, এখন কি এটি কাজ করে?
স্কাইফায়ারবিমূর্ত সংস্করণ বিক্রয় মূল্যঃ ২০০০ কপি, অনানুষ্ঠানিক, ইচ্ছাকৃত লিঙ্ক
রাজাজাককেউ কি এটা পরীক্ষা করে দেখেছেন এবং এর উপকারিতা নিয়ে আলোচনা করতে এসেছেন?
ভ্যালেননকবে এন্ট্রি করা হবে?
উকিয়ানমিংকিভাবে botvs সমর্থিত নয়, বিনামূল্যে ট্রেডিং বিনিময় চালানো, কিভাবে বিনিময় এপিআই লিখতে হবে?
Jধন্যবাদ এত ভালো কৌশল শেয়ার করার জন্য! exchange.CancelOrder ((orders[i].Id) এখানে প্রত্যাহারের কোডটি কিছুটা সমস্যাযুক্ত, যা পরীক্ষার সময় ক্রমাগত অর্ডার বাতিল করে দেয়। এই কোডের মূল সংস্করণটি দেখে মনে হচ্ছে, ১০ সেকেন্ডের অপেক্ষা করার পরেই এটি প্রত্যাহার করা উচিত ছিল। অন্য সব কিছুই ঠিক আছে, আমি এটি পরিবর্তন করেছি এবং এটিকে একটি রক্ষণাবেক্ষণ-মুক্ত এক্সচেঞ্জে রেখেছি, এটি ভাল লাগছে।
কিমিস্টুডিও 66行prices需加.length
তুষারমূলাএটা কোন ভাষা?
শূন্য 平衡那里下单忘加上Price属性了。。已更正,有发现bug请及时提交.
জলজ প্রাণীতবে, আমি মনে করি যে, এই ব্যবসায়ের জন্য কিছু কৌশল রয়েছে, যেমনঃ টাকা আয় করা, না বিক্রি করা, নিজের টাকা রাখা।
1213761768তাড়াতাড়ি বের করো না।
চ্যাং অনিয়মনা, বিড প্রাইস অবশ্যই Ask প্রাইসের চেয়ে কম হতে হবে, একটি হল Buy প্রাইস এবং একটি হল Sell প্রাইস।
বিউসিয়াওকদয়া করে, বিড প্রাইস এবং অ্যাক্স প্রাইস গণনা করার সময়, অর্ডারটি এমনভাবে করা হয় যেন বিড প্রাইসটি অ্যাক্স প্রাইসের চেয়ে বড় না হলে অর্ডার করা হয়, সুতরাং যদি কেনা-বিক্রয় খুব কাছাকাছি হয় তবে এটি গণনা করা খুব সম্ভবত উচ্চ-বিক্রয়-নিম্ন-বিক্রয়, এটির কি সমস্যা হবে?
আমি লোমশ পছন্দ করিআমি একটি মন্তব্য লিখেছি, যাতে সবাই আমার উইকিপিডিয়া হো_টংক্সুয়ে যোগ করতে পারে এবং সবচেয়ে গুরুত্বপূর্ণভাবে বিনামূল্যে।
আমি লোমশ পছন্দ করিআসল মুখের ত্বক যথেষ্ট মোটা।
ছোট কয়লা বলকোন এক্সচেঞ্জ?
শূন্যএটিকে সর্বশেষতম মূল্যে ইনস্টল করা উচিত এবং এর পিছনে একটি শিফট অপারেশন রয়েছে।
পুনরায় সঞ্চয় করা অলৌকিকআমি মনে করি, এটা অনেক আগে থেকেই ব্যর্থ হয়েছে।
সুস্কিহ্যাঁ, এই সরিষার রস আরও ভাল কাটা^_^
স্কাইফায়ারবিক্রেতা বিক্রয় করুক এবং ক্রেতা কিনুক, তোমার বিরুদ্ধে ঝগড়া না করুক।
নববধূওআমি মনে করি, আমরা সবাই আমাদের সোর্স কোড উন্মুক্ত করেছি, আপনি মন্তব্য করুন, ২০০০ বিক্রি?
এক্কে 请问zaif.jp现在还是免手续费吗?怎么通过认证呢
জিয়াওহুয়ান-০০১আইডি দেখুন
J 在Zaif.jp上测试,买一卖一间经常就没有空间,用这个策略有什么问题吗?
Jএটা কি সত্যি? বেরিয়ে আসুন এবং আমাদেরকে একটি পাঠ দিন।
জিয়াওহুয়ান-০০১আশ্চর্য লেখক
Jঠিক আছে, কিছু প্রশ্ন আছে, দয়া করে, অন্য একটি পোস্ট আছেঃ https://www.botvs.com/bbs-topic/677
শূন্যএই কৌশল সম্পর্কে আপনার যদি কোন শেয়ার বা প্রশ্ন থাকে, তাহলে ফোরামে পোস্ট করুন, সমর্থন করার জন্য ধন্যবাদ!
শূন্যধন্যবাদ পরামর্শ, আমি একটি প্যারামিটার যোগ করেছি, ব্যালেন্স অর্ডার অপেক্ষা সময়, যদি আপনি সমান্তরাল প্রক্রিয়াকরণ করতে চান, আপনি প্রতিটি অর্ডার আইডি এবং অর্ডার সময় রেকর্ড করতে পারেন, এবং তারপর নির্বাচনী বাতিল, যাতে বিলম্ব হ্রাস করা যেতে পারে, কিন্তু যৌক্তিকভাবে, এটি প্রথম ব্যালেন্স পুনরায় খোলা উচিত, কারণ না সব এক্সচেঞ্জ অর্ডার পাওয়ার সময় বৈশিষ্ট্য সমর্থন করে, তাই প্ল্যাটফর্ম অর্ডার মধ্যে এই বৈশিষ্ট্য যোগ করা হয় না, তাদের নিজস্ব পরিসংখ্যান প্রয়োজন।
জিয়াওহুয়ান-০০১আমার মনে হয় এই কৌশলটা অদ্ভুত, আমি এটা পছন্দ করি।
শূন্যআমি নিজেও এটা চেষ্টা করিনি, আপনাদেরকে এটা নিয়ে গবেষণা করতে হবে।
ওরিওন ১৭০৮প্লিজ, পলিসি প্যারামিটারের ডিফল্ট ভ্যালু পরিবর্তন করা কি পলিসিতে বড় প্রভাব ফেলবে?
শূন্যহাহা, ধন্যবাদ, যোগ করা হয়েছে।
শূন্যজাভাস্ক্রিপ্ট
শূন্যট্রেডিং ফ্রিকোয়েন্সি উচ্চ
উদ্ভাবকগণ - ক্যোটিফিকেশন - ছোট্ট স্বপ্নএই নিবন্ধের মূল লেখকের নামও প্রকাশিত হয়েছে।
জিয়াওহুয়ান-০০১কেন প্রবণতা কৌশলগুলি শক ব্যয়কে ভয় পায়?