Mengesan Trend Memaksimumkan Strategi Keuntungan

Penulis:ChaoZhang, Tarikh: 2023-10-11 14:38:40
Tag:

Ringkasan

Strategi ini mengira purata bergerak dan CHANNEL penyimpangan standard harga untuk membentuk rel atas dan bawah yang dinamik, dan menggabungkan nilai purata harga tertinggi dan terendah untuk membentuk rel tengah, untuk menilai arah trend semasa. Apabila harga menembusi rel atas, ia bermaksud panjang. Apabila harga menembusi rel bawah, ia bermaksud pendek. Ini melaksanakan strategi yang berdagang berdasarkan perubahan trend.

Logika Strategi

  1. Mengira purata bergerak mudah 20 hari menutup sebagai asas untuk garis rujukan tengah
  2. Mengira penyimpangan standard 20 hari dekat sebagai asas untuk jarak antara rel atas dan bawah dan rel tengah
  3. Asas rel tengah ± 2*dev menentukan rel atas atas dan rel bawah bawah
  4. Mengira nilai purata harga atas tertinggi2 dan harga bawah terendah2 dalam 20 hari terakhir sebagai asas2 untuk rel tengah kedua
  5. Ambil nilai purata MB dari dua rel tengah di atas sebagai rel tengah akhir
  6. Apabila dekat lebih besar daripada MB rel tengah, ia adalah isyarat panjang.
  7. Tentukan arah panjang dan pendek mengikut isyarat untuk mengesan trend dan keuntungan

Analisis Kelebihan

  1. Menggunakan penyesuaian piawai dinamik Saluran boleh dengan cepat menangkap perubahan trend harga
  2. Menggabungkan maklumat harga tertinggi dan terendah, rel tengah lebih bermakna
  3. Reka bentuk rel tengah berganda menjadikan isyarat lebih tepat dan boleh dipercayai
  4. Idea strategi adalah mudah dan jelas, mudah difahami dan dilaksanakan
  5. Terdapat beberapa parameter yang boleh dikonfigurasi, sesuai untuk pelbagai persekitaran pasaran

Analisis Risiko

  1. Apabila berdagang pada penembusan rel atas atau bawah, strategi stop loss perlu dipertimbangkan untuk mengawal kerugian tunggal
  2. Frekuensi perdagangan mungkin tinggi, dan kesan komisen perlu dipertimbangkan
  3. Parameter seperti parameter tempoh perlu dioptimumkan dengan teliti untuk mengelakkan overfitting
  4. Apabila trend berubah, terdapat kemungkinan isyarat perdagangan yang salah
  5. Pengurusan modal yang betul diperlukan, leverage yang berlebihan tidak boleh digunakan

Arahan pengoptimuman

  1. Pertimbangkan menambah penapis apabila memecahkan melalui rel atas dan bawah untuk mengelakkan pecah palsu
  2. Set keluar dinamik berdasarkan ATR dan penunjuk lain
  3. Menggabungkan maklumat jumlah dagangan untuk mengesahkan kebolehpercayaan isyarat pecah
  4. Mengoptimumkan Parameter seperti kitaran pengiraan untuk menyesuaikan diri dengan lebih banyak persekitaran pasaran
  5. Pertimbangkan untuk menetapkan saiz kedudukan untuk mengawal risiko kerugian tunggal

Ringkasan

Idea keseluruhan strategi ini jelas dan mudah difahami. Dengan menangkap trend secara dinamik melalui Saluran dan menjana isyarat perdagangan dengan pelbagai reka bentuk rel tengah, ia dapat dengan berkesan mengesan arah trend untuk perdagangan dan memperoleh pulangan yang baik. Dalam aplikasi sebenar, perhatian harus diberikan kepada strategi stop loss, pengurusan modal, pengoptimuman Parameter, dll., untuk mendapatkan pulangan yang stabil dalam jangka panjang.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
basePeriod: 15m
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/
// © ErdemDemir

//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)

src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0


lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)


MB= (basis+basis2)/2





col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)

// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
    isLong := true
    isShort := false

if (sellSignal)
    isLong := false
    isShort := true







/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")

strategy.close("long", when=sellSignal, comment = "Close Long")

/// SHORT
strategy.entry("short", false,  when = sellSignal, comment="Open Short")

strategy.close("short", when=buySignal, comment = "Close Short")



Lebih lanjut