Scalping-Strategie auf der Grundlage von Marktliquidität und -trend

Schriftsteller:ChaoZhang, Datum: 2024-01-30 15:36:33
Tags:

img

Übersicht

Diese Strategie berücksichtigt umfassend Marktliquidität, Trend und technische Indikatoren, um kurzfristige Handelsstrategien umzusetzen.

Strategieprinzip

  1. Grundprinzip: Diese Strategie berücksichtigt hauptsächlich die Liquidität und den Trend des Marktes.

  2. Marktliquiditätsindikatoren: Diese Strategie verwendet hauptsächlich MFI und Veränderungen des Handelsvolumens als Marktliquiditätsindikatoren.

  3. Trendbeurteilung: Diese Strategie kombiniert ADX, EMA und andere Indikatoren, um den Trend zu bestimmen. Wenn ADX über 30 und seine EMA liegt, bedeutet dies, dass der Trend relativ stark ist. Gleichzeitig kann der Trend auch überprüft werden, wenn das goldene Kreuz von schneller und langsamer EMA auftritt.

  4. Öffnungsbedingungen: Wenn die Marktliquidität gut ist und gleichzeitig ein Trend auftritt, werden Öffnungssignale erzeugt, wenn auch andere Hilfsbedingungen (z. B. SAR-Positionsbeurteilung usw.) erfüllt sind.

  5. Take Profit und Stop Loss-Einstellungen: Diese Strategie legt für jeden Trade einen festen Take Profit (10 Punkte) und einen festen Stop Loss (7,5 Punkte) fest.

Analyse der Vorteile

Diese Strategie hat folgende Vorteile:

  1. Verwenden Sie die Liquidität des Marktes, um den Zeitpunkt zu bestimmen: Vermeiden Sie, Positionen zu eröffnen, wenn die Liquidität des Marktes gering ist, basierend auf MFI und Handelsvolumen, um die Liquidität des Marktes festzustellen.

  2. Verfolgen Sie Trends für Gewinne: Kombinieren Sie EMA und andere Indikatoren, um die Trendrichtung zu bestimmen, und helfen Sie, Trendgewinne zu erzielen.

  3. Gute Risikokontrolle: Festlegen von Gewinn und Stop-Loss, um den maximalen Verlust pro Handel effektiv zu kontrollieren.

  4. Relativ hohe Handelsfrequenz: Als kurzfristige Strategie wird die Handelsfrequenz relativ hoch sein und für die schrittweise Akkumulation von Gewinnen geeignet sein.

  5. Großer Raum für die Optimierung von Parametern: Zum Beispiel können MA-Parameter, Stop-Loss- und Take-Profit-Einstellungen optimiert werden, um die Strategieleistung zu verbessern.

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Das Risiko eines realen Handels mit Slip-Off-Kontrolle: Theoretische Stop-Loss- und Take-Profit-Risiken können nicht vollständig die realen Handelsbedingungen widerspiegeln.

  2. Trendfehlerrisiko: Diese Strategie stützt sich stark auf mehrere Indikatoren, um den Trend zu bestimmen, aber es besteht immer noch die Möglichkeit eines Scheiterns.

  3. Überhandelsrisiko: Als kurzfristige Strategie kann eine unsachgemäße Einstellung der Parameter zu einem Überhandelsrisiko führen.

  4. Marktanomalienrisiko: In extremen Fällen extrem schwacher Marktliquidität oder politischer Änderungen kann diese Strategie nicht ordnungsgemäß funktionieren.

Entsprechend können wir die Risiken aus folgenden Aspekten reduzieren:

  1. Sie müssen den Stop-Loss-Bereich entsprechend lockern, um tatsächliche Schlupffaktoren zu berücksichtigen.

  2. Optimierung der Trendbeurteilungslogik und Einführung mehrerer Indikatoren zur Verringerung der Ausfallwahrscheinlichkeit.

  3. Hinzufügen von Frequenzlimits für offene Positionen, um Überhandel zu vermeiden.

  4. Flexible Anpassung der Parameter anhand der Marktbedingungen, um mit ungewöhnlichen Situationen umzugehen.

Optimierungsrichtung

Zu den Optimierungsrichtungen dieser Strategie gehören:

  1. Einführung von mehr Indikatoren zur Optimierung der Trendbeurteilung und zur Genauigkeit der Beurteilungen.

  2. Optimieren Sie die Zyklusparameter von MA, um die beste Parameterkombination zu finden.

  3. Verbessern Sie die Stop-Loss- und Gewinnstrategien, z. B. die Verwendung von beweglichen Stop-Loss, Intervall-Stop-Loss und so weiter.

  4. Hinzufügen von Einschränkungen für die Anzahl der Trades, um eine zu hohe Frequenz des Handels zu vermeiden.

  5. Bessere Marktliquiditätsindikatoren finden, um den Zeitpunkt der Eröffnung von Positionen zu bestimmen.

  6. Fügen Sie Parameteroptimierungsfunktionen hinzu, um Parameter automatisch zu optimieren, um optimale Parameterkombinationen zu finden.

Zusammenfassung

Diese Strategie berücksichtigt umfassend Faktoren wie Marktliquidität und Trend. Sie erzielt kurzfristig Gewinne. Im Vergleich zu traditionellen Trendstrategien ist die größte Innovation dieser Strategie die Einführung von Marktliquiditätsindikatoren, um zu vermeiden, dass Positionen geöffnet werden, wenn die Marktliquidität schlecht ist. Entsprechend hat diese Strategie auch bestimmte reale Kontrollrisiken und Trendmissverurteilungsrisiken. Wir können diese Strategie kontinuierlich verbessern, indem wir mehr Indikatoren einführen, Parameter optimieren und Risikomanagement durchführen.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
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/
// © trent777brown

//@version=5
strategy("scalping with market facilitation", overlay=true, margin_long=100, margin_short=100)


MFI0 = (high - low) / volume
MFI1 = (high[1] - low[1]) / volume[1]

MFIplus = MFI0 > MFI1
MFIminus = MFI0 < MFI1

//Current Trend-(Changed mean to trend)-revised
trendplus = hl2 > high[1]
trendzero = hl2 < high[1] and hl2 > low[1]  //addition of script
trendminus = hl2 < low[1]  //changed high to low

//Volume +/-
volplus = volume > volume[1]
volminus = volume < volume[1]

//Period Control by Buyers or Sellers is determined with reference to Price action of the period 
//divided into 3 sectors, sector 1 is the Top third, Sector 2 is the middle third, 
//and sector 3 is the Bottom third of the period. Control classifications are: Extremes(11, 33), Neutral(22), 
//Climbers(31,21,32) Open lower than Close, and Drifters(13,23,12)Close lower than Open

//value0 = low
//value1 = ((high - low)/3)
//value2 = ((high - low)/3)*2
//value3 = high

//o1 = (open >= (((high - low)/3) * 2) + low)
//c1 = (close >= (((high - low)/3) * 2) + low)
//o2 = (open <= o1) 
//c2 = (close <= c1)
//o3 = (open <= ((high - low)/3) + low)
//c3 = (close <= ((high - low)/3) + low)

//sector2 = if((high - low)/3) + low and sector2 <= (((high - low)/3)*2) + low

//sector3 = if((high - low)/3) + low and >= low


//Extremes-Full Control of Period by Buyers or Sellers 
//pg79 notes an 85% chance that the current trend will change in the next 1 to 5 bars
b11 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 * 2 + low  //Extreme Buyer Control:Chartruse
b33 = open <= (high - low) / 3 + low and close <= (high - low) / 3 + low  //Extreme Seller Control:Crimson
//Neutral pg80
b22 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Bracketed Price Control
//Climber-Open lower than Close pg81
b31 = open <= (high - low) / 3 + low and close >= (high - low) / 3 * 2 + low  //Strong Buyer Control:Dark Green
b21 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 * 2 + low  //Moderate Buyer Control:Green
b32 = open <= (high - low) / 3 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Weak Buyer Control:Light Green
//Drifter-Close lower than Open pg81
b13 = open >= (high - low) / 3 * 2 + low and close <= (high - low) / 3 + low  //Strong Seller Control:Dark Red
b23 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close <= (high - low) / 3 + low  //Moderate Seller Control:Red
b12 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Weak Seller Control:Light Red/Pink

 

//


psar= ta.sar(.09, .2, .2)

ema8= ta.ema(hlc3, 8)

ema13h= ta.ema(high, 13)
ema13l= ta.ema(low, 13)
ema13= ta.ema(close, 13)

ema55= ta.ema(close, 100)

[dip, dim, adx]= ta.dmi(5, 5)
adxema=ta.ema(adx, 3)
[macdl, sigl, histl]= ta.macd(close, 8, 13, 5)
obv= ta.obv
obvema= ta.ema(obv, 8)
obvema55= ta.ema(obv, 55)
mfigreen= MFIplus and volplus
adx_x_over= ta.crossover(adx, adxema) and adx >= 25
barssincemfi= ta.barssince(mfigreen)










longtrig2= adx > 30 and adx > adxema and barssincemfi <= 4 


shorttrig2= adx > 30 and adx > adxema and barssincemfi <= 4 


long= macdl > sigl and obv > obvema55 and ema8 > ema55   and psar < low and trendplus//and ema13l > ema55//and open > hull200 and close > hull200

short= macdl < sigl and obv < obvema55 and ema8 < ema55 and psar > high and trendminus//and ema13h < ema55//open < hull200 and close < hull200


//plot(hull200, color=color.red, linewidth=3)
plot(ema13h, color=color.gray, linewidth=3)
plot(ema13l, color=color.gray, linewidth=3)

plot(ema13, color=color.blue, linewidth=3)
//
plot(ema55, color=color.white, linewidth=3)
plot(psar, color=color.white, style=plot.style_circles)
plotshape(mfigreen, color=color.yellow, style=shape.flag, location=location.belowbar, size= size.tiny)
longCondition = long
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long, 1,  when= longtrig2)
    strategy.exit("exit long", "My Long Entry Id", profit= 100, loss= 75)
shortCondition = short
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short, 1,  when= shorttrig2)
    strategy.exit("exit short", "My Short Entry Id", profit= 100, loss= 75)


Mehr