Strategi sokongan dan rintangan dinamik berdasarkan data sejarah


Tarikh penciptaan: 2023-11-28 17:00:13 Akhirnya diubah suai: 2023-11-28 17:04:16
Salin: 4 Bilangan klik: 648
1
fokus pada
1619
Pengikut

Strategi sokongan dan rintangan dinamik berdasarkan data sejarah

Gambaran keseluruhan

Strategi ini berdasarkan kepada perhitungan dinamik harga tinggi, rendah, dan harga penutupan sejarah, mendapat sokongan dan rintangan, dan menghasilkan isyarat perdagangan. Strategi ini sesuai untuk memegang kedudukan garis panjang dan menengah, yang dapat memanfaatkan sokongan dan rintangan dalam pasaran untuk mendapatkan keuntungan.

Prinsip Strategi

  1. Hitung purata harga tertinggi, harga terendah dan harga penutupan pada kitaran sebelumnya, untuk mendapatkan titik asas PP.

  2. Hitung 3 garisan sokongan: S1 = 2PP - harga tertinggi; S2 = PP - (R1-S1); S3 = harga terendah - 2(Harga tertinggi - PP)

  3. Hitung 3 garis rintangan: R1 = 2PP - harga terendah; R2 = PP + (R1-S1); R3 = harga tertinggi + 2(PP - harga terendah)

  4. Apabila harga naik melalui garisan rintangan, buat lebih; apabila harga turun melalui garisan sokongan, buat kosong.

Analisis kelebihan

  1. Dinamika perubahan kedudukan rintangan sokongan berdasarkan pengiraan data sejarah, yang dapat menangkap struktur pasaran dalam masa nyata.

  2. Tetapan rintangan sokongan bertingkat yang membolehkan pengendalian risiko yang lebih baik.

  3. Sinyal perdagangan mudah dan intuitif dan cara untuk menghentikan kerugian.

Analisis risiko

  1. Harga rujukan yang disediakan oleh data sejarah mungkin tidak akan berfungsi dalam keadaan yang bergelombang.

  2. Pertukaran antara kedudukan kosong berbilang memerlukan pertimbangan kos urus niaga.

  3. Ia perlu memastikan kualiti data untuk mengelakkan kesilapan pengiraan.

Arah pengoptimuman

  1. Anda boleh mempertimbangkan untuk memasukkan lebih banyak data sejarah sebagai rujukan, seperti garis 100 hari dan sebagainya.

  2. Mengoptimumkan pengurusan kedudukan, seperti membetulkan nisbah kedudukan berdasarkan kadar turun naik.

  3. Menambah strategi hentikan kerugian, seperti menjejaki hentikan kerugian atau pengurusan dana hentikan kerugian.

ringkaskan

Strategi ini berdasarkan konsep rintangan sokongan sejarah, menyediakan harga rujukan bertingkat-tingkat. Strategi ini mudah dan langsung, sesuai untuk memegang kedudukan panjang dan sederhana untuk keuntungan. Ia juga memerlukan perhatian terhadap risiko pasaran yang bergelombang tinggi, dan kawalan kos perdagangan. Dengan pengoptimuman lanjut, strategi ini dapat tetap stabil dalam persekitaran yang kompleks.

Kod sumber strategi
/*backtest
start: 2023-10-28 00:00:00
end: 2023-11-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/06/2020
// Pivot points simply took the high, low, and closing price from the previous period and 
// divided by 3 to find the pivot. From this pivot, traders would then base their 
// calculations for three support, and three resistance levels. The calculation for the most 
// basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and 
// resistance levels.
//
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Pivot Point V2", shorttitle="Pivot Point V2", overlay = true)
res = input(title="Resolution", type=input.resolution, defval="D")
SellFrom = input(title="Sell from ", defval="R1", options=["R1", "R2", "R3"])
BuyFrom = input(title="Buy from ", defval="S1", options=["S1", "S2", "S3"])
width = input(1, minval=1)
reverse = input(false, title="Trade reverse")
xHigh  = security(syminfo.tickerid,res, high)
xLow   = security(syminfo.tickerid,res, low)
xClose = security(syminfo.tickerid,res, close)
vPP = (xHigh+xLow+xClose) / 3
vS1 = 2*vPP - xHigh 
vR1 = 2*vPP-xLow
vS2 = vPP - (vR1 - vS1)
vR2 = vPP + (vR1 - vS1)
vS3 = xLow - 2 * (xHigh - vPP)
vR3 = xHigh + 2 * (vPP - xLow) 
pos = 0
S = iff(BuyFrom == "S1", vS1, 
      iff(BuyFrom == "S2", vS2,
         iff(BuyFrom == "S3", vS3,0)))
B = iff(SellFrom == "R1", vR1, 
      iff(SellFrom == "R2", vR2,
         iff(SellFrom == "R3", vR3,0)))
pos := iff(close > B, 1,
       iff(close < S, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )