91 lines
No EOL
8.3 KiB
MQL5
91 lines
No EOL
8.3 KiB
MQL5
#ifndef CALC_RC_MQH
|
|
#define CALC_RC_MQH
|
|
//+------------------------------------------------------------------+
|
|
//| calc_rc.mqh |
|
|
//| Capteen |
|
|
//| capteen.tlp@gmail.com |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Capteen"
|
|
#property link "capteen.tlp@gmail.com"
|
|
#property version "1.00"
|
|
#property strict
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#include "../setting.mqh"
|
|
double RsiBuff[IND_ARRAY_BUFFER_SIZE], RsiBuff1[IND_ARRAY_BUFFER_SIZE], CciBuff[IND_ARRAY_BUFFER_SIZE], CciBuff1[IND_ARRAY_BUFFER_SIZE];
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
|
|
class calc_rc
|
|
{
|
|
private:
|
|
static bool fill_rc_buffers(setting_t *settings);
|
|
|
|
public:
|
|
calc_rc();
|
|
~calc_rc();
|
|
static int Init(setting_t *settings);
|
|
static void Deinit(void);
|
|
static bool is_indicator_signal ( setting_t *settings,
|
|
layer_order_setting *_order_settings,
|
|
int orders_count );
|
|
public:
|
|
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
calc_rc::calc_rc()
|
|
{
|
|
// _signal=false;
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
calc_rc::~calc_rc()
|
|
{
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
static bool calc_rc::is_indicator_signal ( setting_t *settings,
|
|
layer_order_setting *_order_settings,
|
|
int orders_count )
|
|
{
|
|
|
|
if (!calc_rc::fill_rc_buffers(settings))
|
|
return false;
|
|
|
|
|
|
bool result =
|
|
(orders_count == 0)?
|
|
(!settings.use_for1Order?
|
|
true:
|
|
c_order::is_buy_direction ( _order_settings.order_type )?
|
|
//--- Buy
|
|
(CP(iClose(CURRENT_SYMBOL, settings.CandleTimeFrame1, 1))>iClose(CURRENT_SYMBOL, settings.CandleTimeFrame1, 2) && (CciBuff1[0] < (-1*settings.CciLevel1)) && (RsiBuff1[0] < (-1*settings.RsiLevel1))):
|
|
//--- Sell
|
|
(CP(iClose(CURRENT_SYMBOL, settings.CandleTimeFrame1, 2))>iClose(CURRENT_SYMBOL, settings.CandleTimeFrame1, 1) && (CciBuff1[0] > settings.CciLevel1) && (RsiBuff1[0] > settings.RsiLevel1))):
|
|
//--- Next steps
|
|
((settings.use_for_next_Order == 0) || (orders_count < settings.use_for_next_Order)?
|
|
true:
|
|
c_order::is_buy_direction ( _order_settings.order_type )?
|
|
//--- Buy
|
|
(CP(iClose(CURRENT_SYMBOL, settings.CandleTimeFrame, 1))>iClose(CURRENT_SYMBOL, settings.CandleTimeFrame, 2) && (CciBuff[0] < (-1*settings.CciLevel)) && (RsiBuff[0] < (-1*settings.RsiLevel))):
|
|
//--- Sell
|
|
(CP(iClose(CURRENT_SYMBOL, settings.CandleTimeFrame, 2))>iClose(CURRENT_SYMBOL, settings.CandleTimeFrame, 1) && (CciBuff[0] > settings.CciLevel) && (RsiBuff[0] > (-1*settings.RsiLevel))));
|
|
|
|
return result;
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
#ifdef MQL4
|
|
#include "mql4/fill_rc_buffers.mqh"
|
|
#endif
|
|
#ifdef MQL5
|
|
#include "mql5/fill_rc_buffers.mqh"
|
|
#endif
|
|
#endif //CALC_RC_MQH |