Động lực đột phá Chiến lược đường bạc

Tác giả:ChaoZhang, Ngày: 2024-02-01 15:01:55
Tags:

img

Tổng quan

Chiến lược này là một chiến lược đột phá dựa trên chỉ số động lực giá MACD và trung bình động, phù hợp với khung thời gian 1 giờ trên bạc (XAG/USD, XAG/EUR).

Chiến lược logic

Khi biểu đồ MACD thay đổi từ âm sang dương và liên tục vượt qua đường tín hiệu, nó cho thấy xu hướng tăng ngắn hạn mạnh hơn. Đồng thời, nếu giá đóng phá vỡ xu hướng tăng của đường trung bình động, nó tạo ra tín hiệu dài. Tương tự, khi biểu đồ MACD thay đổi từ dương sang âm và giảm xuống dưới đường tín hiệu, và giá đóng giảm xuống dưới xu hướng giảm của đường trung bình động, nó tạo ra tín hiệu ngắn.

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

  1. Biểu đồ MACD dương tính
  2. Các thanh biểu đồ hiện tại cao hơn so với trước đó
  3. Giá đóng cửa cao hơn mức trung bình động
  4. Giá đóng cửa cao hơn giá cao nhất của 3 dòng K gần đây

Các điều kiện để xác định tín hiệu đầu vào ngắn là ngược lại.

Một khi vị trí đã được mở, nó sẽ được đóng vô điều kiện khi K-line tiếp theo đóng cửa. Chiến lược này không đặt điểm lấy lợi nhuận hoặc dừng lỗ, nhằm mục đích nắm bắt điểm khởi đầu của sự bùng phát 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 để xác định thời gian đảo ngược xu hướng chính xác hơn với tỷ lệ thắng cao hơn.

Không có thiết lập lợi nhuận và dừng lỗ đáp ứng nhu cầu của các nhà đầu tư theo đuổi lợi nhuận cao.

Phân tích rủi ro

Thiếu stop loss có thể dễ dàng dẫn đến việc cố định lỗ và rủi ro mất mát cao hơn.

Cách đóng cửa vô điều kiện trong đường K tiếp theo làm cho việc tiếp tục nắm bắt lợi nhuận xu hướng khó khăn.

Các đề xuất tối ưu hóa

Có thể xem xét thêm các chiến lược dừng lỗ phù hợp trên cơ sở mua đột phá có lợi nhuận cao để giảm rủi ro mất mát.

Nó cũng có thể kết hợp các kỹ thuật tiên tiến để nhập lại các vị trí sau khi đóng, cố gắng liên tục nắm bắt lợi nhuận xu hướng.

Tóm lại

Nói chung, chiến lược này thuộc về một chiến lược rủi ro cao tích cực. Do không có thiết lập stop loss, các nhà đầu tư cần phải chịu rủi ro mất mát lớn hơn. Nhưng nếu đảo ngược thành công, cơ hội mở các vị trí với số lượng lớn đầu tiên cũng có thể dẫn đến lợi nhuận cao. Nó phù hợp với các nhà đầu tư tích cực có sức chịu đựng tâm lý tương đối mạnh.


/*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")


Thêm nữa