Esta estrategia utiliza la acción de precios y los métodos de pirámide para abrir una posición cuando el precio cae un 5%, y luego continúa agregando posiciones a través de la pirámide hasta que el precio aumenta un 5% para cerrar la posición.
Esta estrategia utiliza la acción de precios y los métodos de pirámide para entrar en el mercado temprano en la formación de la tendencia y aumenta las oportunidades de ganancia a través de la adición de múltiples posiciones. Al mismo tiempo, la estrategia también establece un stop loss para controlar el riesgo. Aunque la estrategia puede enfrentar algunos riesgos, a través de una mayor optimización, como ajustar la proporción de adición y cierre de posiciones, introducir más indicadores técnicos, etc., la estabilidad y rentabilidad de la estrategia pueden mejorarse.
/*backtest start: 2023-04-24 00:00:00 end: 2024-04-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("G Strategija su piramidavimu", overlay=true) // Vartotojo įvestis investicijų sumai investment_amount = input(1000.0, title="Investicijų suma") // Nustatyti nuostolių ir pelno pasiekimo procentus lossPercentage = input(3, title="Nuostolio procentas (%)") / 100 // Kintamasis saugoti atidarytoms pozicijoms var int[] entryIndexes = array.new_int(0) var float[] entryPrices = array.new_float(0) // Kintamasis, nustatantis, ar turėtume atidaryti naują poziciją var bool should_buy = false var int open_candle_count = 0 var int positionCounter = 1 // Pozicijos skaitiklis // Įėjimo logika (pirkti, kai kaina krenta) if (hour >= 0 and hour <= 23) // Tikrina, ar yra 24 valandų should_buy := false for i = 1 to 5 should_buy := should_buy or (close < close[i] * (1 - lossPercentage)) if (should_buy and open_candle_count >= 5) strategy.entry("Pirkti_" + str.tostring(positionCounter), strategy.long, qty=investment_amount / close) array.push(entryIndexes, bar_index) // Įrašyti atidarymo laiko indeksą array.push(entryPrices, close) // Įrašyti atidarymo kainą open_candle_count := 0 positionCounter := positionCounter + 1 // Atnaujinti pozicijos skaitiklį else open_candle_count := open_candle_count + 1 // Išėjimo logika (uždaryti, kai pasiekiamas pelno lygis) for i = 0 to array.size(entryIndexes) - 1 var float takeProfitPrice = na // Nustatyti pradinę reikšmę "na" if array.size(entryPrices) > i and array.size(entryPrices) > 0 takeProfitPrice := array.get(entryPrices, i) * 1.05 // Skaičiuojamas pelno pasiekimo lygis: 5% aukščiau atidarymo kainos strategy.exit("TakeProfit_" + str.tostring(i+1), "Pirkti_" + str.tostring(i+1), limit=takeProfitPrice) // Pridėti pelno pasiekimo lygį kaip išėjimo lygį