Einrichten einer Leverage-Strategie im Pine-Skript


Erstellungsdatum: 2023-12-29 10:46:35 zuletzt geändert: 2023-12-29 10:46:35
Kopie: 0 Klicks: 1170
1
konzentrieren Sie sich auf
1621
Anhänger

Einrichten einer Leverage-Strategie im Pine-Skript

Überblick

Diese Strategie soll das Problem lösen, dass bei der Pine-Skript-Retestung keine Leverage eingestellt werden kann, um eine Leverage-Rückgewinnung zu erzielen. Die Strategie berechnet die Anzahl der Positionen, die eröffnet wurden, dynamisch durch Berechnung der Strategie-Beteiligung, des eingestellten Leverage-Peklers und des Schließungspreises.

Strategieprinzip

  1. Genauigkeit der Einstellung Precision, um die Anzahl der Spieler zu steuern
  2. Setzen Sie Leverage multipliziert mit 1 als Default
  3. Die Anzahl der aufgeschlagenen Positionen wird berechnet:Lev = math.max(math.round(strategy.equity * leverage / close), 0)Das ist die Art und Weise, wie wir das Geld in die richtige Richtung bringen.
  4. Eintritt: Ein Plus, wenn der RSI von niedrig auf 30 übergeht; ein Minus, wenn der RSI von hoch auf 70 übergeht
  5. Bestellungen nach der Anzahl der ermittelten Hand

Analyse der Stärken

  1. Behebung des Problems, dass das Pine-Skript keine Leverage hat
  2. Die Veränderung der Ansprüche im Verhältnis zur Anzahl der Positionsinhaber, um einen Leverage-Gewinn zu erzielen
  3. RSI-Indikator gefiltert, um unnötige Transaktionen zu vermeiden
  4. Handrechner-Genauigkeit und -Präzision sind für unterschiedliche Bedürfnisse einstellbar

Risikoanalyse

  1. Überhöhte Hebel sind gefährlich
  2. Benötigen Sie eine angemessene Hebelwirkung, um die Anzahl der Spieler zu erhöhen und die Risiken zu kontrollieren?

Optimierungsrichtung

  1. Stabilität unter verschiedenen Parametern erproben
  2. Risiken können mit Stop-Loss-Strategien kombiniert werden
  3. Mehrfaktormodelle können zur Steigerung der Effektivität von Strategien eingesetzt werden

Zusammenfassen

Diese Strategie implementiert die Leverage-Einstellung in Pine-Skripten, löst das Problem, dass die Rückmessung keine simulierte Leverage ermöglicht, berechnet die Anzahl der aufgenommenen Positionen und die Anbindung an die Ansprüche, um eine Leverage-Rückgewinnung zu erzielen. Die Strategie ist einfach und effektiv, kann weiter optimiert werden und lohnt sich zu lernen.

Strategiequellcode
/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RingsCherrY

//@version=5
strategy("How to use Leverage in PineScript", overlay=true, pyramiding=1, initial_capital=1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.04)

//////////////////////////////////////////
////////////////Indicators////////////////
//////////////////////////////////////////

length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = ta.rsi(price, length)
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)

//////////////////////////////////////////
/////////////////Leverage/////////////////
//////////////////////////////////////////


//The number of decimal places for each position opening, i.e., the accuracy
precision = input.int(1,title='Precision')

//Leverage, the default is 1, here is not recommended to open a high leverage

leverage = input.int(1,title='Leverage',minval = 1, maxval = 100 ,step = 1)

//Calculate the number of open contracts, here using equity for calculation, considering that everyone compound interest is used for trading equity
Lev = math.max(math.round(strategy.equity * leverage  / close , precision), 0)

if (not na(vrsi))
	if (co)
		strategy.entry("RsiLE", strategy.long,qty = Lev, comment="RsiLE")
	if (cu)
		strategy.entry("RsiSE", strategy.short,qty = Lev, comment="RsiSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)