이것은 다단계 대리점 BTC 로보트 거래 전략이다. 최저점을 찾아서 긴 포지션에 진입하고 대리점 출구에 대해 여러 대리점 점수를 설정한다. 또한 위험 통제를 위해 스톱 로스 포인트를 설정한다. 이 전략은 BTC에 상승세를 올릴 때 적합하다.
엔트리 신호를 찾아: CC 지표가 0 이하로 넘어가면 구매 신호를 생성합니다. 이 시점에서 긴 포지션을 구매하십시오.
스톱 로스 설정: 입력으로 스톱 로스 비율을 설정하고 스톱 로스 가격 수준으로 변환합니다.
복수의 수익점 설정: 4 출구점, 입력으로 각 포인트에 대한 수익점 비율을 설정, 가격 수준으로 변환합니다.
리스크 제어: 최대 포지션 크기를 설정하고 리스크 분산을 위한 입력으로 각 출구 포인트에 대한 출구 비율을 설정합니다.
이 전략의 장점은 다음과 같습니다.
가장 낮은 지점에서 구매하고, 높은 지점에서 구매하는 것을 피함으로써 신뢰할 수 있는 입력 신호입니다.
다단계 취득은 일부 수익을 유지하면서 일부 수익을 유지합니다.
스톱 손실은 위험을 통제하고 손실을 일정 범위로 제한합니다.
대량 출출은 위험을 분산시키고 한꺼번에 모든 손실을 피합니다.
마감량은 어느 정도 조절할 수 있습니다.
이 전략의 위험은 다음과 같습니다.
CC 지표가 완전히 최저점을 보장 할 수 없습니다, 구매 기회를 놓칠 수 있습니다.
부적절한 스톱 손실 설정은 불필요한 스톱 손실을 일으킬 수 있습니다.
부적절한 대량 출하도 수익 손실로 이어질 수 있습니다.
이윤을 취하는 것은 다양한 시장에서 더 어렵습니다.
급격한 변동으로 손실을 막는 것은 어려울 수 있습니다.
잠재적인 최적화:
더 많은 지표나 기계 학습으로 입력 신호를 최적화하여 더 나은 타이밍을 얻습니다.
스톱 로스 전략을 최적화하여 시장 움직임에 더 유연하게 만듭니다.
시장의 변화와 트렌드에 더 나은 적응을 위해 출구를 최적화합니다.
더 유연한 수익을 위해 후속 스톱을 추가합니다.
가장 좋은 매개 변수 집합을 위해 다른 자산을 테스트합니다.
요약하자면, 이것은 다단계 취익과 스톱 로스로 가장 낮은 지점에서 구매를 기반으로 하는 BTC 거래 전략이다. 그것은 특정 장점과 또한 개선될 수 있는 영역을 가지고 있다. 마감 통제 및 취익에 대한 추가 최적화는 전략을 더 잘 수행할 수 있다. 전반적으로 BTC 알고리즘 거래에 대한 실행 가능한 접근 방식을 제공한다.
/*backtest start: 2023-09-17 00:00:00 end: 2023-10-17 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["v_input_1",2]] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © RafaelZioni // © theCrypster 2020 //@version=4 // strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, 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.075) strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"]) strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all strategy.risk.allow_entry_in(strat_dir_value) //INPUTS higherTF = input("W", type=input.resolution) pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true) ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true) pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true) PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0 PP := (ph + pl + pc) / 3 R1 := PP + (PP - pl) S1 := PP - (ph - PP) R2 := PP + (ph - pl) S2 := PP - (ph - pl) factor=input(2) R3 := ph + factor * (PP - pl) S3 := pl - 2 * (ph - PP) // length=input(21) // p = close vrsi = rsi(p, length) pp=ema(vrsi,length) d=(vrsi-pp)*5 cc=(vrsi+d+pp)/2 // low1=crossover(cc,0) sell=crossover(close[1],R3) // l = low1 s=sell if l strategy.entry("buy", strategy.long) if s strategy.entry("sell", strategy.short) per(pcnt) => strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) stoploss=input(title=" stop loss", defval=15, minval=0.01) los = per(stoploss) q1=input(title=" qty_percent1", defval=25, minval=1) q2=input(title=" qty_percent2", defval=25, minval=1) q3=input(title=" qty_percent3", defval=25, minval=1) tp1=input(title=" Take profit1", defval=3, minval=0.01) tp2=input(title=" Take profit2", defval=5, minval=0.01) tp3=input(title=" Take profit3", defval=7, minval=0.01) tp4=input(title=" Take profit4", defval=10, minval=0.01) strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los) strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los) strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los) strategy.exit("x4", profit = per(tp4), loss = los)