Chiến lược phá vỡ đường bạc Momentum


Ngày tạo: 2024-02-01 15:01:55 sửa đổi lần cuối: 2024-02-01 15:01:55
sao chép: 2 Số nhấp chuột: 622
1
tập trung vào
1617
Người theo dõi

Chiến lược phá vỡ đường bạc Momentum

Tổng quan

Chiến lược này là một chiến lược mua phá vỡ dựa trên chỉ số động lực giá MACD và đường trung bình, áp dụng cho chu kỳ thời gian 1 giờ của bạc (XAG / USD, XAG / EUR). Điểm quan trọng là kết hợp xu hướng giá và chỉ số động lực để xác định thời gian đảo ngược xu hướng.

Nguyên tắc chiến lược

Khi MACD trục trặc từ tiêu cực và liên tục tăng vượt qua đường tín hiệu, cho thấy động lực ngắn hạn mạnh hơn; đồng thời nếu giá đóng cửa phá vỡ đường trung bình của xu hướng tăng, sẽ tạo ra tín hiệu đa đầu. Tương tự, MACD trục trục trục trặc từ tiêu cực và phá vỡ đường tín hiệu, và khi giá đóng cửa phá vỡ đường trung bình của xu hướng giảm, sẽ tạo ra tín hiệu đầu trống.

Cụ thể, chiến lược này đánh giá các tín hiệu đầu vào của các vị trí dài như sau:

  1. MACD trục là dương
  2. Dòng trụ hiện tại cao hơn dòng trụ trước
  3. Giá đóng cửa cao hơn mức trung bình
  4. Giá đóng cửa cao hơn mức cao nhất gần 3 đường K

Trong khi đó, điều kiện để đánh giá các tín hiệu đầu vào ngắn hạn là ngược lại.

Một khi mở vị trí, không có điều kiện bằng phẳng khi K tiếp theo đóng cửa. Chiến lược này không thiết lập điểm dừng lỗ, theo đuổi điểm bắt đầu của sự bùng nổ xu hướng.

Phân tích lợi thế

Chiến lược này kết hợp các chỉ số giá và động lực, có thể xác định chính xác hơn thời gian thay đổi xu hướng, tỷ lệ thắng cao hơn. Một cách thanh toán khép kín K-line vô điều kiện có thể tránh một lần nữa thua lỗ sau khi thất bại.

Không thiết lập lệnh dừng lỗ, mở toàn bộ kho để đáp ứng nhu cầu của các nhà đầu tư tìm kiếm lợi nhuận cao.

Phân tích rủi ro

Thiết lập không mất mát dễ bị mắc kẹt và có nguy cơ mất mát lớn. Nếu tín hiệu đảo ngược thất bại, không thể dừng lỗ kịp thời, có thể phải đối mặt với tổn thất tài chính lớn.

Một đường K-line đóng cửa vô điều kiện bằng cách tháo lỗ, rất khó để tiếp tục nắm bắt lợi nhuận của xu hướng.

Hướng tối ưu hóa

Có thể xem xét thêm chiến lược dừng lỗ thích hợp để giảm rủi ro thua lỗ trên cơ sở mua phá vỡ có tỷ lệ thắng cao hơn.

Có thể kết hợp các kỹ thuật cao cấp, thiết lập các cơ chế mở lại các vị trí sau khi giảm vị trí, cố gắng tiếp tục nắm bắt lợi nhuận xu hướng.

Tóm tắt

Chiến lược này nói chung là một chiến lược rủi ro cao tích cực, do thiết lập không ngừng lỗ, đòi hỏi nhà đầu tư phải chịu rủi ro mất mát lớn. Tuy nhiên, tương đối, sau khi đảo ngược thành công, việc mở toàn bộ vị trí ngay lập tức cũng có thể thu được lợi nhuận cao.

Mã nguồn chiến lược
/*backtest
start: 2023-01-31 00:00:00
end: 2024-01-13 05:20: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/
// © SoftKill21

//@version=4
strategy("XAG strategy 1h",overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
var gica = 0
var marcel = gica+2
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
len = input(10, minval=1, title="Length")
src = input(close, title="Source")
out = sma(src, len)

//distanta = input(1.004)

fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

option1=input(true)
option2=input(true)

long2 =  close > open  and time_cond and close > out and hist > 0 and hist > hist[1] 
short2 =  close < open  and time_cond and close < out and hist < 0 and hist < hist[1] 

long1 = (close > open ) and time_cond and close > out and hist > 0 and  hist > hist[1] and high > high[1] and high[1] > high[2] and close > high[1] and close > high[2] and close > high[3] 
short1 = (close < open)  and time_cond and close < out and hist < 0 and  hist < hist[1] and low < low[1] and low[1] < low[2]  and close < low[1] and close < low[2] and close < low[3] 

if(option1)
    strategy.entry("long",1,when= short1)
    strategy.entry("short",0,when=long1)
    strategy.close_all()

if(option2)

    strategy.entry("long",1,when= short2)
    strategy.entry("short",0,when=long2)
    strategy.close_all()

// if(strategy.openprofit < 0)
//     strategy.close_all()
// if(strategy.openprofit>0)
//     strategy.close("long",when = close < open )
//     strategy.close("short",when = close > open)
//     strategy.close("long",when= close < open)
//     strategy.close("short",when= close> open)


// tp = input(0.0003)
// sl = input(0.005)
// strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
// strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")