Selalunya, strategi automatik perlu mempertimbangkan maklumat dari pelbagai tempoh masa sebelum membuat keputusan dagangan. Mujurlah, cTrader menyediakan banyak alat yang membolehkan algo mengakses data dari pelbagai tempoh masa dengan mudah. Dalam video ini dan artikel yang sepadan, kami akan menerangkan bagaimana anda boleh menggunakan alat ini untuk membuat cBot yang berkesan.
Isytiharkan parameter cBot
Kita akan mula dengan mengisytiharkan parameter yang diperlukan untuk purata bergerak. Kita akan memerlukan tempoh, tempoh masa, dan jenis purata bergerak.
12345678
[Parameter("MA 1 Period", DefaultValue = 14, Group = "Moving Averages")]publicintMA1Period{get;set;}[Parameter("MA 1 Timeframe", DefaultValue = "Hour", Group = "Moving Averages")]publicTimeFrameMA1Timeframe{get;set;}[Parameter("MA 1 Type", Group = "Moving Averages")]publicMovingAverageTypeMA1Type{get;set;}
Kemudian, kita boleh menentukan purata bergerak.
1
privateMovingAverage_ma1;
Kita boleh memulakan purata bergerak dalam kaedah OnStart(). Kita akan menggunakan kaedah MarketData.GetBars() untuk mendapatkan bar purata bergerak pertama dan memasukkannya ke pembina indikator. Kaedah GetBars() berguna untuk mendapatkan data bar untuk mana-mana tempoh masa dan mana-mana simbol yang anda perlukan.
Parameter("MA 1 Period",DefaultValue=14,Group="Moving Averages")]publicintMA1Period{get;set;}[Parameter("MA 1 Timeframe", DefaultValue = "Hour", Group = "Moving Averages")]publicTimeFrameMA1Timeframe{get;set;}[Parameter("MA 1 Type", Group = "Moving Averages")]publicMovingAverageTypeMA1Type{get;set;}[Parameter("MA 2 Period", DefaultValue = 14, Group = "Moving Averages")]publicintMA2Period{get;set;}[Parameter("MA 2 Timeframe", DefaultValue = "Hour2", Group = "Moving Averages")]publicTimeFrameMA2Timeframe{get;set;}[Parameter("MA 2 Type", Group = "Moving Averages")]publicMovingAverageTypeMA2Type{get;set;}[Parameter("MA 3 Period", DefaultValue = 14, Group = "Moving Averages")]publicintMA3Period{get;set;}[Parameter("MA 3 Timeframe", DefaultValue = "Hour4", Group = "Moving Averages")]publicTimeFrameMA3Timeframe{get;set;}[Parameter("MA 3 Type", Group = "Moving Averages")]publicMovingAverageTypeMA3Type{get;set;}privateMovingAverage_ma1;privateMovingAverage_ma2;privateMovingAverage_ma3;protectedoverridevoidOnStart(){_ma1=Indicators.MovingAverage(MarketData.GetBars(MA1Timeframe).ClosePrices,MA1Period,MA1Type);_ma2=Indicators.MovingAverage(MarketData.GetBars(MA2Timeframe).ClosePrices,MA2Period,MA2Type);_ma3=Indicators.MovingAverage(MarketData.GetBars(MA3Timeframe).ClosePrices,MA3Period,MA3Type);}
Laksanakan logik dagangan
Pada ketika ini, kita boleh melaksanakan logik dagangan. Strategi kita akan memegang posisi beli apabila semua purata bergerak meningkat dan posisi jual apabila purata bergerak menurun. Berikut ialah kod untuk semua logik bahagian beli.
Akhir sekali, kita perlu menguji belakang cBot baharu kita. Kita boleh melihat bahawa cBot memasuki posisi apabila purata bergerak diselaraskan ke arah yang sama dan kekal di luar pasaran apabila setiap indikator menunjuk ke arah yang berbeza.