
이 전략은 실레드 지표를 사용하여 자동으로 중지 및 중지 가격을 설정하여 이동 중지 제한 가격 거래를 구현합니다. 그것은 추세 상황에서 더 많은 수익을 얻을 수 있으며, 또한 충격 상황에서 손실을 줄일 수 있습니다.
이 전략은 주로 실레드 지표를 기반으로 가격을 설정한다. 실레드 지표는 시장의 잠재적인 지원과 저항을 반영할 수 있다. 이 전략은 실레드 지표의 다양한 레벨을 스톱로스 및 스톱 가격으로 활용한다.
구체적으로, 전략은 최고점과 최저점을 추적하고, 10단계 가격 간격을 계산한다. 그리고는 구성에 따라 한단계 가격을 입문 전략으로 선택한다. 가격이 그 경로를 뚫을 때, 구성된 레버리지에 따라 더 많이 한다. 동시에, 평균 입문 가격에 해당하는 스톱 가격을 설정한다.
주문 후, 전략은 최신 실전 가격을 계속 추적한다. 낮은 실전 발생하면, 전략은 원래의 위탁을 취소하고, 다시 주문하고, 이동 스톱을 실현한다. 가격 상승이 스톱 가격을 돌파 할 때, 전략은 평정 스톱한다.
이 전략의 가장 큰 장점은 동적으로 중지 및 중지 가격을 조정할 수 있다는 것입니다. 이 전략은 다음과 같은 특징이 있습니다.
트렌드 상황에서 더 많은 수익을 얻을 수 있다. 평균 입점 가격에 기반한 정지 설정을 구성하여 트렌드 상황에서 최대한 참여하여 더 높은 수익을 얻을 수 있다.
충격적인 상황에서는 손실을 줄일 수 있다. 가격이 다시 더 낮은 셀레나치에 닿을 때, 적시에 손실을 멈출 수 있으며, 충격에 걸리지 않는다.
포지션을 지원한다. 포지션 설정을 구성하여 가격이 일정 수준으로 떨어지면 포지션을 늘리고 평균 포지션 비용을 줄인다.
조작이 간단하다. 과 스톱 비율만 설정하면 모든 거래가 수동으로 처리되지 않고 자동으로 완료됩니다.
이 전략에는 다음과 같은 몇 가지 위험도 있습니다.
충격적인 평준화 시 반복적으로 막히기 쉽다. 수평 또는 충격적인 상황이 발생하면 가격이 여러 번 오르락 내리락하여 막힘을 유발하여 거래 주파수 및 수수료 지출을 증가시킬 수 있습니다.
스톱 로드 설정이 없습니다. 더 많은 수익을 추구하기 위해, 전략은 스톱 로드 설정이 없습니다. 큰 역전 상황이 발생하면 엄청난 손실이 발생할 수 있습니다.
매장 수와 금액에는 제한이 없다. 매장 수를 늘리면 손실이 더욱 커질 수 있다.
대응방법:
이 전략은 다음과 같은 부분에서 크게 최적화 할 수 있습니다.
다른 지표 조합을 사용하여 입시를 확인한다. 입시 조건에 EMA, MACD 등의 지표의 확인이 포함될 수 있으며, 충격 상황에서 피한다.
스톱 메커니즘에 가입하십시오. 고정 스톱을 구성하거나 스톱을 추적하면 극단적인 상황에서 큰 손실을 피할 수 있습니다.
최적화 하가 로직 ᆞ 특정 시장 상황에 따라 하가 가격 범주와 하가 횟수를 최적화 할 수 있다 ᆞ 과도한 하가 ᆞ를 방지한다
기계 학습 알고리즘과 결합 . 예를 들어, LSTM와 같은 알고리즘을 사용하여 가격의 가능한 움직임을 예측하고 저항을 지원 . 더 나은 입출장 논리를 결정하는 데 도움이 .
이 전략은 전체적으로 트렌드 상황을 추적하기에 적합하다. 그것은 동적으로 스톱 스톱 손실 가격을 조정하여 더 많은 수익을 얻을 수 있다. 또한, 다른 메커니즘과 결합하여 최적화 및 개선이 필요하며, 더 복잡한 시장 환경에 적응할 수 있도록 해야 한다.
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
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/
// © CryptoRox
//@version=4
//Paste the line below in your alerts to run the built-in commands.
//{{strategy.order.alert_message}}
strategy(title="Fibs limit only", shorttitle="Strategy", overlay=true, precision=8, pyramiding=1000, commission_type=strategy.commission.percent, commission_value=0.04)
//Settings
testing = input(false, "Live")
//Use epochconverter or something similar to get the current timestamp.
starttime = input(1600976975, "Start Timestamp") * 1000
//Wait XX seconds from that timestamp before the strategy starts looking for an entry.
seconds = input(60, "Start Delay") * 1000
testPeriod = true
leverage = input(1, "Leverage")
tp = input(1.0, "Take Profit %") / leverage
dca = input(-1.0, "DCA when < %") / leverage *-1
fibEntry = input("1", "Entry Level", options=["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"])
//Strategy Calls
equity = strategy.equity
avg = strategy.position_avg_price
symbol = syminfo.tickerid
openTrades = strategy.opentrades
closedTrades = strategy.closedtrades
size = strategy.position_size
//Fibs
lentt = input(60, "Pivot Length")
h = highest(lentt)
h1 = dev(h, lentt) ? na : h
hpivot = fixnan(h1)
l = lowest(lentt)
l1 = dev(l, lentt) ? na : l
lpivot = fixnan(l1)
z = 400
p_offset= 2
transp = 60
a=(lowest(z)+highest(z))/2
b=lowest(z)
c=highest(z)
fib0 = (((hpivot - lpivot)) + lpivot)
fib1 = (((hpivot - lpivot)*.21) + lpivot)
fib2 = (((hpivot - lpivot)*.3) + lpivot)
fib3 = (((hpivot - lpivot)*.5) + lpivot)
fib4 = (((hpivot - lpivot)*.62) + lpivot)
fib5 = (((hpivot - lpivot)*.7) + lpivot)
fib6 = (((hpivot - lpivot)* 1.00) + lpivot)
fib7 = (((hpivot - lpivot)* 1.27) + lpivot)
fib8 = (((hpivot - lpivot)* 2) + lpivot)
fib9 = (((hpivot - lpivot)* -.27) + lpivot)
fib10 = (((hpivot - lpivot)* -1) + lpivot)
notna = nz(fib10[60])
entry = 0.0
if fibEntry == "1"
entry := fib10
if fibEntry == "2"
entry := fib9
if fibEntry == "3"
entry := fib0
if fibEntry == "4"
entry := fib1
if fibEntry == "5"
entry := fib2
if fibEntry == "6"
entry := fib3
if fibEntry == "7"
entry := fib4
if fibEntry == "8"
entry := fib5
if fibEntry == "9"
entry := fib6
if fibEntry == "10"
entry := fib7
profit = avg+avg*(tp/100)
pause = 0
pause := nz(pause[1])
paused = time < pause
fill = 0.0
fill := nz(fill[1])
count = 0.0
count := nz(fill[1])
filled = count > 0 ? entry > fill-fill/100*dca : 0
signal = testPeriod and notna and not paused and not filled ? 1 : 0
neworder = crossover(signal, signal[1])
moveorder = entry != entry[1] and signal and not neworder ? true : false
cancelorder = crossunder(signal, signal[1]) and not paused
filledorder = crossunder(low[1], entry[1]) and signal[1]
last_profit = 0.0
last_profit := nz(last_profit[1])
if neworder and signal
strategy.order("New", 1, 0.0001, alert_message='New Order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry))
if moveorder
strategy.order("Move", 1, 0.0001, alert_message='Move Order|e=binancefuturestestnet s=btcusdt b=long c=order|e=binancefuturestestnet s=btcusdt b=long q=0.0011 fp=' + tostring(entry))
if filledorder and size < 1
fill := entry
count := count+1
pause := time + 60000
p = close+close*(tp/100)
strategy.entry("Filled", 1, 1, alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(p))
if filledorder and size >= 1
fill := entry
count := count+1
pause := time + 60000
strategy.entry("Filled", 1, 1, alert_message='Long Filled|e=binancefuturestestnet s=btcusdt b=short c=order|delay=1|e=binancefuturestestnet s=btcusdt b=long c=position q=100% ro=1 fp=' + tostring(profit))
if cancelorder and not filledorder
pause := time + 60000
strategy.order("Cancel", 1, 0.0001, alert_message='Cancel Order|e=binancefuturestestnet s=btcusdt b=long c=order')
if filledorder
last_profit := profit
closeit = crossover(high, profit) and size >= 1
if closeit
strategy.entry("Close ALL", 0, 0, alert_message='Profit')
count := 0
fill := 0.0
last_profit := 0.0
//Plots
bottom = signal ? color.green : filled ? color.red : color.white
plot(entry, "Entry", bottom)