Strategi ini menggabungkan indikator Borang Keseimbangan Pertama dan MACD, dan masuk selepas pengesahan trend reversal, termasuk dalam strategi perdagangan kategori trend reversal.
Hitung garisan belokan pada carta keseimbangan pertama, sebagai penunjuk arah trend. Harga di atas garisan belokan adalah pasaran banyak kepala, di bawahnya adalah pasaran kosong kepala.
Indeks MACD menghasilkan isyarat jual apabila pasaran berlainan bentuk membentuk garpu mati; menghasilkan isyarat beli apabila pasaran kosong membentuk garpu emas.
Menggabungkan penilaian trend dari carta keseimbangan mata pertama dan isyarat pembalikan MACD, melakukan perdagangan terbalik pada titik pembalikan trend.
Pengendalian masa dagangan boleh ditetapkan, seperti penutupan perdagangan pada waktu malam, tidak berdagang pada hujung minggu, dan lain-lain, untuk mengelakkan risiko pada tempoh masa tertentu.
Mengambil strategi hentikan dan hentikan kerugian yang sesuai untuk mengunci keuntungan dan mengawal risiko.
Indikator carta keseimbangan pandangan pertama secara langsung menunjukkan trend dan tekanan sokongan.
Indeks MACD lebih sensitif untuk menangkap pembalikan trend.
Ia juga boleh digunakan untuk menyaring isyarat palsu.
Anda boleh menyesuaikan tempoh perdagangan anda untuk mengelakkan risiko pada masa-masa penting.
Menetapkan strategi Hentikan Kerosakan (Stop Loss Stop) dapat menguruskan risiko dana dengan berkesan.
Indeks keseimbangan dan MACD mungkin menunjukkan isyarat salah sangka.
Tidak dapat dipastikan apakah perubahan itu akan berlaku, dan ada risiko yang tidak dapat dipastikan.
Pengendalian masa perdagangan mungkin terlepas beberapa peluang perdagangan.
Penangguhan kerosakan yang ditetapkan tidak betul, mungkin tergesa-gesa atau berhenti terlalu awal.
Pengoptimuman parameter mungkin terlalu optimum dan tidak berkesan.
Uji parameter Tabel Keseimbangan Pertama dan MACD untuk mencari kombinasi parameter yang optimum.
Menambah petunjuk lain untuk mengesahkan isyarat dagangan.
Mengoptimumkan strategi penghentian kerugian, mengimbangi risiko dan keuntungan.
Menilai keperluan untuk mengawal masa transaksi, dan melonggarkan dengan sewajarnya.
Tambah penapis trend untuk mengelakkan kerugian perdagangan terbalik.
Kajian bagaimana untuk menilai intensiti dan potensi pemulihan.
Strategi ini mengintegrasikan penghakiman trend dari carta keseimbangan pertama dan isyarat perdagangan berbalik MACD, membuat keputusan perdagangan setelah pengesahan perubahan trend. Dengan mengoptimumkan parameter dan strategi lebih lanjut, risiko kesalahan penilaian isyarat dapat dikurangkan, dan sistem perdagangan berbalik trend yang stabil dan cekap dapat dibina.
/*backtest
start: 2022-09-13 00:00:00
end: 2023-09-19 00:00: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/
// © Revazi
//@version=5
strategy("The Impeccable by zyberal", overlay = true)
// Inputs {
// Strategy variables
IchimokuTenkanPeriod = input(9)
IchimokuKijunPeriod = input(190)
IchimokuSenkouPeriod = input(52)
MACDMainFast = input(3)
MACDMainSlow = input(10)
MACDMainSmooth = input(9)
ExitAfterBars = input(2)
ProfitTarget = input(135)
StopLoss = input(70)
// Trading Options
DontTradeOnWeekends = input(true)
ExitAtEndOfDay = input(true)
DayExitTimeHour = input(23)
DayExitTimeMinute = input(04)
ExitOnFriday = input(true)
FridayExitTimeHour = input(20)
FridayExitTimeMinute = input(40)
// }
// TRADING OPTIONS LOGIC {
OpenOrdersAllowed = true
// Dont trade on weekends {
if DontTradeOnWeekends
if dayofweek == dayofweek.saturday or
dayofweek == dayofweek.sunday
OpenOrdersAllowed := false
// }
// Exit on close (end of day) {
if ExitAtEndOfDay
if timeframe.isintraday and
time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), DayExitTimeHour, DayExitTimeMinute)
OpenOrdersAllowed := false
// }
// Exit on Friday {
if ExitOnFriday
if timeframe.isintraday and
time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), FridayExitTimeHour, FridayExitTimeMinute)
OpenOrdersAllowed := false
// }
// Rule: Trading signals {
openW3 = request.security(syminfo.tickerid, "W", open)[3]
middleDonchian(Length) => math.avg(ta.highest(Length), ta.lowest(Length))
Tenkan = middleDonchian(IchimokuTenkanPeriod)[2]
[macdLine, signalLine, _] = ta.macd(close, MACDMainFast, MACDMainSlow, MACDMainSmooth)
LongEntrySignal = openW3 > Tenkan and ta.crossunder(macdLine, signalLine)[3] //macdLine[3] < signalLine[3]
ShortEntrySignal = openW3 < Tenkan and ta.crossover(macdLine, signalLine)[3] //macdLine[3] > signalLine[3]
// }
// Calculate conditions {
IsFlat() => strategy.position_size == 0
IsLong() => strategy.position_size > 0
IsShort() => strategy.position_size < 0
longCondition = OpenOrdersAllowed and not IsLong() and LongEntrySignal
shortCondition = OpenOrdersAllowed and not IsShort() and ShortEntrySignal
// }
// Open positions based on conditions {
strategy.order(id = "buy", direction = strategy.long, qty = 1, when = longCondition)
strategy.order(id = "sell", direction = strategy.short, qty = 1, when = shortCondition)
// }