Alım satım sinyali üretecimi yazmaya devam ediyorum.
Başlatma kodunun son bölümünde hatalar vardı (kalın harflerle vurgulanmıştır)
'InitMyCustomIndicator' - işlevin bir gövdesi olmalıdır
'InitClose' - işlevin bir gövdesi olmalıdır
//| включаемые файлы |//+------------------------------------------------------------------+
#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'de metatrader ne zaman piyasaya sürülecek?
Alım satım sinyali üretecimi yazmaya devam ediyorum.
Başlatma kodunun son bölümünde hatalar vardı (kalın harflerle vurgulanmıştır)
'InitMyCustomIndicator' - işlevin bir gövdesi olmalıdır
'InitClose' - işlevin bir gövdesi olmalıdır
Alım satım sinyali üretecimi yazmaya devam ediyorum.
Başlatma kodunun son bölümünde hatalar vardı (kalın harflerle vurgulanmıştır)
'InitMyCustomIndicator' - işlevin bir gövdesi olmalıdır
'InitClose' - işlevin bir gövdesi olmalıdır
Bildirilen ancak tanımlanmayan yöntemleri kullanmaya çalışıyorsunuz.
Sınıflar benim için yeni ve tamamen net değil. Nasıl tanım yapılacağını göstermek için bir örnek kullanabilirsiniz.
Sınıflar benim için yeni ve tamamen net değil. Nasıl tanım yapılacağını göstermek için bir örnek kullanabilirsiniz.
Yani kodun sadece kalın harflerle vurguladığım son kısmını mı değiştiriyorum?
Ve bunu yapıyorum:
Yani kodun sadece kalın harflerle vurguladığım son kısmını mı değiştiriyorum?
Ve bunu yapıyorum:
Sınıf kodunuz aşağıdaki gibi yöntemler sağlıyorsa:
Bu yüzden bir şeyi kontrol etmeleri gerekiyor. Aksi halde varlıklarının bir anlamı yoktur.
Merhaba!
Kaç çubuğun kontrol edileceğini önceden bilmiyorsam, çubukların kapanış fiyatlarına göre for döngüsüyle yineleme nasıl organize edilir
Bir durumu kontrol etmem gerekiyor, örneğin i barlar önceki kapanış fiyatlarının birbirinin altında olması.