Continuando a scrivere il mio generatore di segnali di trading.
Ci sono errori nell'ultima parte del codice di inizializzazione (in grassetto)
'InitMyCustomIndicator' - la funzione deve avere un corpo
InitClose' - la funzione deve avere un 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 uscirà metatrader su windows phone 8
Continuando a scrivere il mio generatore di segnali di trading.
Ci sono errori nell'ultima parte del codice di inizializzazione (in grassetto)
'InitMyCustomIndicator' - la funzione deve avere un corpo
InitClose' - la funzione deve avere un corpo
Continuando a scrivere il mio generatore di segnali di trading.
Ci sono errori nell'ultima parte del codice di inizializzazione (in grassetto)
'InitMyCustomIndicator' - la funzione deve avere un corpo
InitClose' - la funzione deve avere un corpo
State cercando di usare metodi che sono dichiarati ma non definiti.
Le classi sono nuove per me e non vengono capite veramente. Puoi mostrarmi come fare una definizione con un esempio.
Le classi sono nuove per me e non vengono capite veramente. Posso usare un esempio per mostrare come fare una definizione.
Quindi cambio solo l'ultima parte del codice che ho messo in grassetto?
E io faccio questo:
Quindi, cambio solo l'ultima parte del codice che ho evidenziato in grassetto?
E faccio quanto segue:
Se il codice della vostra classe ha metodi come:
Allora devono controllare qualcosa. Altrimenti non ha senso la loro esistenza.
Ciao!
Come faccio a impostare un ciclo for sui prezzi di chiusura delle barre se non so in anticipo quante barre controllare
Ho bisogno di controllare una condizione, per esempio che i prezzi di chiusura di i barre all'indietro, siano più bassi l'uno dell'altro.