Type/to search
8
Follow
1364
Followers
Eine vorläufige Studie zum Backtesting von Optionsstrategien für Kryptowährungen
Discussions
Created 2020-08-11 14:21:28  Updated 2024-12-10 10:10:30
 0
 2583

img

Eine vorläufige Studie zum Backtesting von Optionsstrategien für Kryptowährungen

Vor Kurzem hat die Inventor Quantitative Trading Platform ihr Backtesting-System aktualisiert, um das Backtesting von digitalen Währungsoptionen zu unterstützen.DeribitEinige Optionsdaten von der Börse. Daher verfügen wir über bessere Tools, um den Optionshandel zu erlernen und Strategien zu validieren.

Deribit Optionen Backtesting

Im Backtesting-System definiertDeribitDie Optionen sind im europäischen Stil und ein Kontrakt ist 1 BTC wert. Der Optionsvertragscode lautet:BTC-7AUG20-12750-C

GegenstandAusübungsdatumAusübungspreis(Call/Put) Optionen
BTC7AUG2012750C
BitcoinAusübungsdatum: 7. August 2020Ausübungspreis 12750Call-Option
BTC7AUG2012750P
BitcoinAusübungsdatum: 7. August 2020Ausübungspreis 12750Put-Option

Die Vorgänge zum Aufsetzen von Verträgen und Erhalten von Positionen sind dieselben wie bei digitalen Währungs-Futures.
So richten Sie den Vertrag ein:exchange.SetContractType("BTC-7AUG20-12750-C")
Positionen abrufen:var pos = exchange.GetPosition()

Der Preis eines Optionskontrakts ist die Prämie eines Optionskontrakts, und der Optionskäufer muss die Prämie an den Optionsverkäufer zahlen. Der Käufer erhält das Recht, die Option auszuüben, und der Verkäufer hat die Pflicht, die Option auszuüben. Ein Optionskontrakt kann gehandelt werden (z. B. durch Schließen einer Position, Begleichen einer Verpflichtung), bevor er ausgeübt wird.

Nehmen Sie als Beispiel eine gängige Optionshandelskombination

Call-Optionen verkaufen und Spot kaufen.

javascript
/*backtest start: 2020-07-27 00:00:00 end: 2020-08-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"OKEX","currency":"BTC_USDT","balance":100000}] */ function main() { exchanges[0].SetContractType('BTC-7AUG20-12750-C'); var initSpotAcc = _C(exchanges[1].GetAccount) var isFirst = true while(true) { var optionTicker = exchanges[0].GetTicker() var spotTicker = exchanges[1].GetTicker() if(isFirst) { exchanges[0].SetDirection("sell") exchanges[0].Sell(optionTicker.Buy, 1) exchanges[1].Buy(spotTicker.Sell, 1) isFirst = false } var optionPos = _C(exchanges[0].GetPosition) var nowSpotAcc = _C(exchanges[1].GetAccount) var diffStocks = (nowSpotAcc.Stocks - initSpotAcc.Stocks) var diffBalance = (nowSpotAcc.Balance - initSpotAcc.Balance) var spotProfit = diffBalance + diffStocks * spotTicker.Last var optionProfit = optionPos[0].Profit * spotTicker.Last LogProfit(spotProfit + optionProfit) $.PlotLine("现货", spotProfit) $.PlotLine("期权", optionProfit) Sleep(500) } }

img

Optionen können einen gewissen Grad an Absicherungsschutz für per Spot gekaufte Vermögenswerte bieten. Es wird im Allgemeinen verwendet, wenn Sie hinsichtlich des Spots optimistisch sind und bereit sind, den Spot zu halten. Das Risiko liegt im Rückgang der Spotpreise. Zwar können Optionen gewisse Spotverluste bis zu einem gewissen Grad ausgleichen, doch wenn die Verluste die Optionsprämie übersteigen, entsteht ein Nettoverlust.

Darüber hinaus ist die Liquidität des Marktes für digitale Währungsoptionen im Allgemeinen gering und manchmal ist es schwierig, Gegenparteien zu finden. Auch dies muss berücksichtigt werden.

In ähnlicher Weise können wir Spot durch Futures ersetzen. Der Code lautet wie folgt:

javascript
/*backtest start: 2020-07-27 00:00:00 end: 2020-08-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"Futures_OKCoin","currency":"BTC_USD"}] */ function main() { exchanges[0].SetContractType('BTC-7AUG20-12750-C'); exchanges[1].SetContractType("quarter") var isFirst = true while(true) { var optionTicker = exchanges[0].GetTicker() var futuresTicker = exchanges[1].GetTicker() if(isFirst) { exchanges[0].SetDirection("sell") exchanges[0].Sell(optionTicker.Buy, 1) exchanges[1].SetDirection("buy") exchanges[1].Buy(futuresTicker.Sell, _N(1 * futuresTicker.Sell / 100, 0)) isFirst = false } var optionPos = _C(exchanges[0].GetPosition) var futuresPos = _C(exchanges[1].GetPosition) var futuresProfit = futuresPos[0].Profit var optionProfit = optionPos[0].Profit LogProfit(futuresProfit + optionProfit) $.PlotLine("期货", futuresProfit) $.PlotLine("期权", optionProfit) Sleep(500) } }

Das Backtesting ist in der Abbildung dargestellt:
img

Futures können den Kapitaleinsatz im Vergleich zu Spot reduzieren, das Risiko ist jedoch etwas höher als bei Spot.

Darüber hinaus gibt es zahlreiche weitere Kombinationen für den Optionshandel:

  • Bull-Call-Spread
  • Bären-Put-Spread

Interessierte können dies im Backtesting-System studieren.

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)