Trading

給定買/賣訂單列表和以前的交易,計算買/賣價格

  • December 8, 2021

我正在將 Cryptsy API 與機器人一起使用。到目前為止,我的機器人的問題是,當它決定需要購買或出售硬幣(不僅僅是比特幣)時,我似乎總是計算出一個太低或太高的價格。我可以訪問的數據是:

  1. 目前未完成的買單(儘管幾秒鐘前且沒有時間戳)
  2. 目前未完成的賣單
  3. 在市場上執行的前 20 筆交易

從所有這些數據中,是否存在一種現有的算法來計算幾乎總是買入或賣出的價格?我的機器人的首要任務是進行快速交易(例如,執行不到一分鐘),即使價格不是最好的。

Cryptsy 自己在他們的 Web UI 中計算了一個相當不錯的數字(預設的賣價/賣價),但我沒有看到他們的 API 中暴露了這個值。這個要價/買入價從何而來?

作為參考,我嘗試了一些沒有成功的事情

  1. 最高買入價/最低賣出價——這往往會捕捉到異常值,導致我給出一個只有一個買家/賣家願意支付的過於樂觀的出價(而且因為我的數據是幾秒鐘前的數據,顯然是別人撿到的)
  2. 平均 3 個最低/最高——這與異常值有同樣的問題
  3. 最低買入價/最高賣出價——這非常悲觀,導致我支付了不合理的荒謬價格

我如何從我擁有的這組數據中計算出好的買價/買價?

我最近一直在考慮這個問題,根本沒有探索過這個選項,但我在這里大聲思考,因為 8 天內沒有人回复。

那麼,如果你取最高訂單 1 - 5 的平均值,然後取最高訂單 2 - 6 的平均值,以及 3 - 7 的平均值,等等。在這些訂單中,您然後再次計算平均值以達到您的賣點?必要時可以重複該過程,以找到徘徊在買入點頂部的平均值。

想法?

這需要相當多的思考,但這裡是您如何得出“立即購買”或“立即出售”的價格。

假設您有買單:

  1. 以 5BTC 購買 100LTC
  2. 以 4BTC 購買 50LTC
  3. 以 3BTC 買入 200LTC

和賣單:

  1. 以 6BTC 賣出 100LTC
  2. 以 7BTC 賣出 500LTC
  3. 以 8BTC 賣出 100LTC

等等。

我們可以從這組簡單的訂單中獲益良多。一方面,市場深度圖在查看這些數據時變得非常有用。所以,在這種情況下,你可以說市場價差是 1BTC,因為買單和賣單被 1BTC 隔開

現在,假設我們要出售 125LTC。您選擇最佳賣出即時價格的方法是查看買單。看起來你可以以 5BTC 的價格出售你的第一個 100LTC,以 4BTC 的價格出售剩餘的 25LTC。所以,5BTC 應該是你的最高匯率。根據您使用的 API,您可能希望以不同的價格下兩個單獨的訂單,或者下一個假設的最高價格。

它與購買的工作方式相同。如果您想購買 650LTC,您可以在 6BTC 購買前 100LTC,然後在 7BTC 購買下一個 500LTC,在 8BTC 購買最後 50LTC。所以,你的最高價格是 8BTC。雖然你的實際價格會有很大差異。這取決於您使用的服務和 API,如何以最佳方式下訂單跨越價格。

對於 Cryptsy,您可以在 8BTC 下一個 650LTC 的訂單。Crypsty 會自動為您選擇最優惠的價格,因此您會有這種效果。但是,不能保證以這種方式工作。如果你拿到了訂單清單,有人要以 6BTC 的價格買入 50BTC,那麼你的預期價格最終會是錯誤的。如果您想要價格保證,您應該在訂單簿中下達完全匹配的訂單。但是,按照這種方法,您很可能無法完成訂單,或者需要比預期更長的時間,例如,如果您以 6BTC 購買 100LTC,但有人已經購買了 50LTC。預設情況下,Crypsty 會在完成部分訂單之前等待一段時間。(假設沒有其他賣單以該價格下達)

這實際上是一個非常簡單的概念,但由於某種原因,我花了幾天時間才真正理解它。希望如果其他人有同樣的問題,也許這篇文章會為他們解決問題

引用自:https://bitcoin.stackexchange.com/questions/21185