BuySell Indicator For MT5
Table Of Contents:
- BuySell Indicator For MT5
- Εγκατάσταση του BuySell Indicator For MT5
- Παράμετροι του BuySell Indicator For MT5
- Buffers του BuySell Indicator For MT5
- Κύρια μέρη του κώδικα
Ο BuySell Indicator For MT5 δείχνει τη ζώνη δυναμικής στήριξης και αντοχής στο διάγραμμα τιμών με απλές κουκίδες. Αλλά αν παρατηρήσετε προσεκτικά το διάγραμμα τιμών, θα παρατηρήσετε συχνά μια μικρή πλατεία με ματζέντα χρώματος πάνω από το κηροπήγιο και αυτό σημαίνει ότι πρέπει να προετοιμαστείτε για την πτωτική τάση. Αντίθετα, όταν εντοπίζετε ένα μπλε τετράγωνο κάτω από το κηροπήγιο, θα πρέπει να είστε έτοιμοι για το bullish rally. Για να ανταλλάξετε την αγορά χρησιμοποιώντας αυτό το εργαλείο, θα πρέπει να μάθετε να αναλύετε το επίπεδο υποστήριξης και αντίστασης. Ορισμένοι έμποροι χρησιμοποιούν συχνά τις κουκίδες και το τετράγωνο σήμα για να βγουν από τα κερδοφόρα εμπόρια, καθώς ο δείκτης υπολογίζει επίσης την τιμή ATR ενώ σχεδιάζει αυτές τις κουκίδες και το τετράγωνο.
Εγκατάσταση του BuySell Indicator For MT5
Αφού κατεβάσετε την ένδειξη μέσω της παραπάνω φόρμας, πρέπει να αποσυνδέσετε το αρχείο zip. Στη συνέχεια, πρέπει να αντιγράψετε το αρχείο buysell.mq5 στο φάκελο MQL5Indicators της εγκατάστασης MT5 . Στη συνέχεια, κάντε επανεκκίνηση του MT5 και, στη συνέχεια, θα μπορείτε να δείτε τον δείκτη στη λίστα των δεικτών.
Παράμετροι του BuySell Indicator For MT5
Το BuySell Indicator For MT5 έχει παραμέτρους 4 για να ρυθμίσετε τις παραμέτρους.
input uint MA_Period=14; input ENUM_MA_METHOD MA_Method=MODE_SMA; // Smoothing method input ENUM_APPLIED_PRICE MA_Price=PRICE_CLOSE; // Price input uint ATR_Period=60;
Buffers του BuySell Indicator For MT5
Το BuySell Indicator For MT5 παρέχει buffers 4 .
SetIndexBuffer(0,UpBuffer,INDICATOR_DATA); SetIndexBuffer(1,DnBuffer,INDICATOR_DATA); SetIndexBuffer(2,SellBuffer,INDICATOR_DATA); SetIndexBuffer(3,BuyBuffer,INDICATOR_DATA);
Κύρια μέρη του κώδικα
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- checking of bars, needed for calculation if(BarsCalculated(MA_Handle) lt rates_total || BarsCalculated(ATR_Handle) lt rates_total || rates_total lt min_rates_total) return(RESET); //---- declaration of local variables int limit,to_copy,bar; double MA[],ATR[]; //---- set starting bar index limit if(prev_calculated gt rates_total || prev_calculated lt =0)// checking of first call limit=rates_total-min_rates_total-2; // starting bar index for all bars else limit=rates_total-prev_calculated; // starting bar index for new bars to_copy=limit+2; //---- copy new data to arrays if(CopyBuffer(MA_Handle,0,0,to_copy,MA) lt =0) return(RESET); if(CopyBuffer(ATR_Handle,0,0,to_copy,ATR) lt =0) return(RESET); //---- set indexing as time series ArraySetAsSeries(MA,true); ArraySetAsSeries(ATR,true); //---- first calculation for(bar=limit; bar gt =0 && !IsStopped(); bar--) { //---- set buffers to zero DnBuffer[bar]=0.0; UpBuffer[bar]=0.0; if(MA[bar] gt MA[bar+1]) DnBuffer[bar]=MA[bar]-ATR[bar]; if(MA[bar] lt MA[bar+1]) UpBuffer[bar]=MA[bar]+ATR[bar]; } //---- recalculation of starting bar index for new bars if(prev_calculated gt rates_total || prev_calculated lt =0)// checking of first call limit--; //---- second calculation for(bar=limit; bar gt =0 && !IsStopped(); bar--) { //---- set buffers to zero BuyBuffer[bar]=0.0; SellBuffer[bar]=0.0; if(UpBuffer[bar+1]&&DnBuffer[bar]) BuyBuffer [bar]=DnBuffer[bar]; if(DnBuffer[bar+1]&&UpBuffer[bar]) SellBuffer[bar]=UpBuffer[bar]; } //---- return(rates_total); } //+------------------------------------------------------------------+