Strategi perdagangan pembalikan arah aliran berdasarkan Ichimoku Kinko Hyo


Tarikh penciptaan: 2023-09-20 15:44:13 Akhirnya diubah suai: 2023-09-20 15:44:13
Salin: 0 Bilangan klik: 649
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggabungkan indikator Borang Keseimbangan Pertama dan MACD, dan masuk selepas pengesahan trend reversal, termasuk dalam strategi perdagangan kategori trend reversal.

Prinsip Strategi

  1. 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.

  2. Indeks MACD menghasilkan isyarat jual apabila pasaran berlainan bentuk membentuk garpu mati; menghasilkan isyarat beli apabila pasaran kosong membentuk garpu emas.

  3. Menggabungkan penilaian trend dari carta keseimbangan mata pertama dan isyarat pembalikan MACD, melakukan perdagangan terbalik pada titik pembalikan trend.

  4. 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.

  5. Mengambil strategi hentikan dan hentikan kerugian yang sesuai untuk mengunci keuntungan dan mengawal risiko.

Analisis kelebihan

  1. Indikator carta keseimbangan pandangan pertama secara langsung menunjukkan trend dan tekanan sokongan.

  2. Indeks MACD lebih sensitif untuk menangkap pembalikan trend.

  3. Ia juga boleh digunakan untuk menyaring isyarat palsu.

  4. Anda boleh menyesuaikan tempoh perdagangan anda untuk mengelakkan risiko pada masa-masa penting.

  5. Menetapkan strategi Hentikan Kerosakan (Stop Loss Stop) dapat menguruskan risiko dana dengan berkesan.

Analisis risiko

  1. Indeks keseimbangan dan MACD mungkin menunjukkan isyarat salah sangka.

  2. Tidak dapat dipastikan apakah perubahan itu akan berlaku, dan ada risiko yang tidak dapat dipastikan.

  3. Pengendalian masa perdagangan mungkin terlepas beberapa peluang perdagangan.

  4. Penangguhan kerosakan yang ditetapkan tidak betul, mungkin tergesa-gesa atau berhenti terlalu awal.

  5. Pengoptimuman parameter mungkin terlalu optimum dan tidak berkesan.

Arah pengoptimuman

  1. Uji parameter Tabel Keseimbangan Pertama dan MACD untuk mencari kombinasi parameter yang optimum.

  2. Menambah petunjuk lain untuk mengesahkan isyarat dagangan.

  3. Mengoptimumkan strategi penghentian kerugian, mengimbangi risiko dan keuntungan.

  4. Menilai keperluan untuk mengawal masa transaksi, dan melonggarkan dengan sewajarnya.

  5. Tambah penapis trend untuk mengelakkan kerugian perdagangan terbalik.

  6. Kajian bagaimana untuk menilai intensiti dan potensi pemulihan.

ringkaskan

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.

Kod sumber strategi
/*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)
// }