Continuando a escrever o meu gerador de sinais comerciais.
Existem erros na última parte do código de inicialização (em negrito)
'InitMyCustomIndicator' - a função deve ter um corpo
InitClose' - a função deve ter um corpo
//| включаемые файлы |//+------------------------------------------------------------------+
#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);
}
quando é que o metatrader sairá no windows phone 8
Continuando a escrever o meu gerador de sinais comerciais.
Existem erros na última parte do código de inicialização (em negrito)
'InitMyCustomIndicator' - a função deve ter um corpo
InitClose' - a função deve ter um corpo
Continuando a escrever o meu gerador de sinais comerciais.
Existem erros na última parte do código de inicialização (em negrito)
'InitMyCustomIndicator' - a função deve ter um corpo
InitClose' - a função deve ter um corpo
Está a tentar utilizar métodos que são declarados mas não definidos.
As aulas são novas para mim e não são realmente compreendidas. Pode mostrar-me como fazer uma definição com um exemplo.
As aulas são novas para mim e não são realmente compreendidas. Posso usar um exemplo para mostrar como se faz uma definição.
Então só mudo a última parte do código que coloco em negrito?
E eu faço isto:
Então, eu só mudo a última parte do código que sublinhei em negrito?
E eu faço o seguinte:
Se o seu código de classe tiver métodos tais como:
Depois devem verificar alguma coisa. Caso contrário, não faz sentido a sua existência.
Olá!
Como posso estabelecer um laço para os preços de fecho de barras se não sei antecipadamente quantas barras devo verificar
Preciso de verificar uma condição, por exemplo, que os preços de fecho das barras i ao contrário, sejam inferiores uns aos outros.