Cara membuat indikator sesi trading dan support/resistance
API cTrader Algo menyediakan tipe yang diperlukan untuk membuat indikator yang menggambar persegi panjang, garis, segitiga, awan dan objek lain pada grafik trading. Persegi panjang, khususnya, banyak digunakan untuk menyorot periode penting, zona konsolidasi dan level support/resistance.
Dalam artikel ini dan video terkait, Anda akan belajar cara menggambar persegi panjang yang mewakili sesi trading dan level support/resistance pada grafik simbol.
Membuat indikator sesi trading
Ada empat sesi trading utama: Sydney, Tokyo, London dan New York. Setiap sesi unik dalam hal tingkat volatilitas dan aktivitas. Dengan memantau sesi dan tumpang tindih di antara mereka, trader tahu kapan aset tertentu diperdagangkan dan dapat memanfaatkan peluang.
Dalam contoh ini, kita ingin membuat indikator yang menggambar sesi trading pada grafik.
Di cTrader Algo, navigasikan ke tab Indicators dan klik tombol New. Masukkan nama di kolom teks lalu klik Create.
Mulai memodifikasi indikator di editor kode. Pertama, jadikan ini indikator overlay.
Tulis kode untuk menggambar persegi panjang yang menunjukkan sesi London pada grafik.
1234567
TimeSpanlondonOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;TimeSpanlondonClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;Chart.DrawRectangle("London Session ",Server.Time.Date.Add(londonOpen),Chart.TopY,Server.Time.Date.Add(londonClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;
Tekan Ctrl+B atau klik Build, lalu tambahkan indikator ke grafik dengan mengklik Add instance.
Persegi panjang sesi London dapat dilihat pada grafik.
Kembali ke editor kode dan tambahkan kode untuk tiga sesi trading lainnya.
1 2 3 4 5 6 7 8 91011121314151617181920212223
TimeSpannyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;TimeSpannyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("NY Session ",Server.Time.Date.Add(nyOpen),Chart.TopY,Server.Time.Date.Add(nyClose),Chart.BottomY,Color.FromArgb(50,255,50,0)).IsFilled=true;TimeSpansydneyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;TimeSpansydneyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("Sydney Session ",Server.Time.Date.Add(sydneyOpen).AddDays(-1),Chart.TopY,Server.Time.Date.Add(sydneyClose),Chart.BottomY,Color.FromArgb(50,50,255,0)).IsFilled=true;TimeSpantokyoOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;TimeSpantokyoClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;Chart.DrawRectangle("Tokio Session ",Server.Time.Date.Add(tokyoOpen),Chart.TopY,Server.Time.Date.Add(tokyoClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;
usingSystem;usingcAlgo.API;usingcAlgo.API.Collections;usingcAlgo.API.Indicators;usingcAlgo.API.Internals;namespacecAlgo{[Indicator(AccessRights = AccessRights.None, IsOverlay = true)]publicclassTradingSessions:Indicator{protectedoverridevoidInitialize(){}publicoverridevoidCalculate(intindex){TimeSpanlondonOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;TimeSpanlondonClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;Chart.DrawRectangle("London Session ",Server.Time.Date.Add(londonOpen),Chart.TopY,Server.Time.Date.Add(londonClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;TimeSpannyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;TimeSpannyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("NY Session ",Server.Time.Date.Add(nyOpen),Chart.TopY,Server.Time.Date.Add(nyClose),Chart.BottomY,Color.FromArgb(50,255,50,0)).IsFilled=true;TimeSpansydneyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;TimeSpansydneyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("Sydney Session ",Server.Time.Date.Add(sydneyOpen).AddDays(-1),Chart.TopY,Server.Time.Date.Add(sydneyClose),Chart.BottomY,Color.FromArgb(50,50,255,0)).IsFilled=true;TimeSpantokyoOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;TimeSpantokyoClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;Chart.DrawRectangle("Tokyo Session ",Server.Time.Date.Add(tokyoOpen),Chart.TopY,Server.Time.Date.Add(tokyoClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;}}}
Bangun ulang indikator dan kemudian periksa grafik untuk melihat semua sesi trading yang terwakili di sana.
Membuat indikator support/resistance
Kita akan membuat indikator yang memplot zona resistance dan support pada grafik menggunakan fractal.
Buat indikator baru menggunakan langkah-langkah yang sama, tetapi berikan nama yang berbeda.
Mulai modifikasi dengan mengatur IsOverlay menjadi true.
Zona resistance fractal digambar di mana nilai tinggi lebih tinggi dari dua bar yang berdekatan di setiap sisi. Zona tersebut adalah area antara harga tinggi dan penutupan lilin fractal. Zona resistance membantu mengidentifikasi area di mana tren bullish mungkin berhenti dan berbalik, yang menghasilkan peluang trading.
Tidak seperti zona resistance, zona support membantu mengidentifikasi di mana tren bearish mungkin berhenti dan berbalik. Zona seperti itu dapat diterjemahkan sebagai sinyal beli.
Bangun indikator dan tambahkan instance ke grafik. Anda seharusnya melihat zona support dan resistance pada grafik.
Artikel ini telah mendemonstrasikan cara membuat indikator dengan objek yang berguna, seperti persegi panjang, yang dapat digunakan untuk mewakili sesi trading dan level support/resistance pada grafik.