//| включаемые файлы |//+------------------------------------------------------------------+
#property tester_indicator "Blau_Ergodic.ex5"
#include <Expert\ExpertSignal.mqh>
//+------------------------------------------------------------------+//| Класс CSampleSignal. |//| Назначение: Класс генератора торговых сигналов. |//| Является производным от класса CExpertSignal. |//+------------------------------------------------------------------+class CSampleSignal : public CExpertSignal
{
protected:
CiCustom m_TSI; // объект для доступа к значениям TSI
CiClose m_close; // объект для доступа к ценам закрытия баров//--- настраиваемые параметрыint q; // q - период, по которому вычисляется моментумint r; // r - период 1-й EMA, применительно к моментумуint s; // s - период 2-й EMA, применительно к результату первого сглаживанияint u; // u - период 3-й EMA, применительно к результату второго сглаживанияint ul; // ul - (сигнальная линия) период EMA, применительно к эргодикеdouble m_stop_loss; // уровень установки ордера "stop loss" относительно цены открытияdouble m_take_profit; // уровень установки ордера "take profit" относительно цены открытияpublic:
CSampleSignal();
//--- методы установки параметров настройкиvirtualint ShortCondition(); // проверка условия открытия селлаvirtualint LongCondition(); // проверка условия открытия баяvoid Q(intvalue) { q=value; }
void R(intvalue) { r=value; }
void S(intvalue) { s=value; }
void U(intvalue) { u=value; }
void UL(intvalue) { ul=value; }
void StopLoss(doublevalue) { m_stop_loss=value; }
void TakeProfit(doublevalue) { m_take_profit=value; }
//--- метод проверки параметров настройкиvirtualbool ValidationSettings();
virtualbool InitIndicators(CIndicators* indicators);
protected:
//--- метод инициализации объектовbool InitMyCustomIndicator(CIndicators* indicators);
bool InitClose(CIndicators* indicators);
//--- методы доступа к данным объектовdouble Main(int index) { return(m_TSI.GetData(0,index)); }
double Signal(int index) { return(m_TSI.GetData(1,index)); }
double Close(int index) { return(m_close.GetData(index)); }
};
//+------------------------------------------------------------------+//| Конструктор CSampleSignal. |//| INPUT: нет. |//| OUTPUT: нет. |//| REMARK: нет. |//+------------------------------------------------------------------+void CSampleSignal::CSampleSignal()
{
q=2;
r=7;
s=5;
u=3;
ul=5;
}
//+------------------------------------------------------------------+//| Проверка параметров настройки. |//| INPUT: нет. |//| OUTPUT: true-если настройки правильные, иначе false. |//| REMARK: нет. |//+------------------------------------------------------------------+bool CSampleSignal::ValidationSettings()
{
//--- проверка параметровif(q<=0||r<=0||s<=0||u<=0||ul<=0)
{
printf(__FUNCTION__+": период должен быть больше нуля");
return(false);
}
//--- успешное завершениеreturn(true);
}
//+------------------------------------------------------------------+//| Инициализация индикаторов и таймсерий. |//| INPUT: indicators - указатель на объект-коллекцию |//| индикаторов и таймсерий. |//| OUTPUT: true-в случае успешного завершения, иначе false. |//| REMARK: нет. |//+------------------------------------------------------------------+bool CSampleSignal::InitIndicators(CIndicators* indicators)
{
//--- проверка указателяif(indicators==NULL) return(false);
//--- инициализация скользящей среднейif(!InitMyCustomIndicator(indicators)) return(false);
//--- инициализация таймсерии цен закрытияif(!InitClose(indicators)) return(false);
//--- успешное завершениеreturn(true);
}
什么时候能在windows phone 8上推出metatrader?
继续编写我的交易信号发生器。
在初始化代码的最后部分有错误(黑体字)。
'InitMyCustomIndicator' -该函数 必须有一个主体
'InitClose' - 函数必须有一个主体
继续编写我的交易信号发生器。
在初始化代码的最后部分有错误(黑体字)。
'InitMyCustomIndicator' - 该函数必须有一个主体
'InitClose' - 函数必须有一个主体
你正试图使用那些已经声明但没有定义的方法。
课堂对我来说是新的,没有真正理解。你能告诉我如何用一个例子来做一个定义吗?
课堂对我来说是新的,没有真正理解。我能否用一个例子来说明如何进行定义。
所以我只改变了我用粗体字写的代码的最后部分?
而我是这样做的。
那么,我只修改我用黑体字强调的最后一部分代码?
我还做了以下工作。
如果你的班级代码中有这样的方法。
那么他们必须检查一些东西。否则,他们的存在就没有意义。
你好!
如果我事先不知道要检查多少个条形图,我如何在条形图收盘价 上设置一个for循环?
我需要检查一个条件,例如,i条的收盘价向后退,比对方低。