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