Reshetov : Yaratan, hatta onun Peygamberi bile değil, sadece bir doçent olduğunuz için neden yaratmaya ihtiyacınız var? Zamanlama hizmetini açmak (kapalı değilse) ve "Denetim Masası" nda aynı programları yapılandırmak yeterlidir ("Zamanlanmış görevler" kısayolu). Bilgisayarın, belirlenen zamanda terminal komut satırı aracılığıyla birer birer Expert Advisor'ları başlatmasına izin verin.
Eğer sizin için zor değilse, lütfen nokta nokta açıklayın, bu mekanizmayı başlatmak için nasıl ilerlemeliyim, çünkü hala zamanlama hizmetini, içindeki kontrol panelini, terminal komutunu nerede ve nasıl etkinleştireceğimi bilmiyorum. astar.
Reshetov : RAM miktarı, işletim sistemine ve donanımın bitliğine bağlıdır. Tek çekirdekli bir bilgisayara sahip olmanıza bakılırsa, donanımın 32 bit olduğu ve RAM'i 3 gig'e kadar artırabileceğiniz anlamına geliyor. Ancak anakarttaki verileri kontrol etmek daha iyidir, çünkü. tüm eski bilgisayarlar 2 gigabayttan fazlasını destekleyemez.
32 için daha fazlası mümkündür. Sadece anakart limitleri. Görünüşe göre 200 GB'a kadar bağlanabilir. Bir yerde bir masa gördüm.
yosuf : Eğer sizin için zor değilse, lütfen nokta nokta açıklayın, bu mekanizmayı başlatmak için nasıl ilerlemeliyim, çünkü hala zamanlama hizmetini, içindeki kontrol panelini, terminal komutunu nerede ve nasıl etkinleştireceğimi bilmiyorum. astar.
"Windows Görev Zamanlayıcı" için google'a gidebilirsiniz.Buraya bakabilirsin.
//+---------------------------------------------------------------------------------------+//| Strategy №1 for H1.mq4 |//| hoz |//| |//+---------------------------------------------------------------------------------------+#property copyright "hoz"#property link ""//----- Входные параметры -----------externstring H1 = "___ Общие параметры индикаторов ___" ;
externint i_TF = 60 ;
externstring H2 = "_____ Параметры быстрой машки _____" ;
externint i_maFastPeriod = 5 ,
i_maFastShift = 0 ,
i_maFastMethod = 1 ;
externstring H3 = "____ Параметры медленной машки ____" ;
externint i_maSlowPeriod = 19 ,
i_maSlowShift = 0 ,
i_maSlowMethod = 1 ;
externstring H4 = "_______ Параметры Моментума _______" ;
externint i_momPeriod = 18 ;
externstring H5 = "_______ Параметры Стохастика ______" ;
externint i_stoch_D = 3 , // Сигнальная линия
i_stoch_K = 13 , // Главная линия
i_stoch_slowing = 3 ; // Замедлениеint g_ticket, // Тикет текущей позиции
g_type; // Тип текущей позиции//Иднентификаторы типов сигналов#define CROSSINGTOUP 1// Пересечение быстрой медленную снизу вверх#define CROSSINGTODOWN - 1// Пересечение быстрой медленную сверху вниз#define CROSSINGWAIT 0// Отсуствие пересечения машек#define SIGNAL_BUY 1// Сигнал покупки#define SIGNAL_SELL - 1// Сигнал продажи#define SIGNAL_NO 0// Отсуствие сигнала//+---------------------------------------------------------------------------------------+//| Функция инициализации эксперта |//+---------------------------------------------------------------------------------------+int init()
{
return ( 0 );
}
//+---------------------------------------------------------------------------------------+//| Функция деинициализации эксперта |//+---------------------------------------------------------------------------------------+int deinit()
{
return ( 0 );
}
//+---------------------------------------------------------------------------------------+//| Проверка пересечения скользящих средних |//+---------------------------------------------------------------------------------------+int GetCrossingMa( double & i_maFast1, double & i_maFast2, double & i_maSlow1, double & i_maSlow2)
{
if ((i_maFast2<i_maSlow2) && (i_maFast1>i_maSlow1)) // Если быстрая скользящая пересекла медленную снизу вверх..return (CROSSINGTOUP); //.. значит, - пересечение вверхif ((i_maFast2>i_maSlow2) && (i_maFast1<i_maSlow1)) // Если быстрая скользящая средняя пересекла медленную сверху вниз..return (CROSSINGTODOWN); //..значит, - пересечение внизreturn (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Стохастика |//+---------------------------------------------------------------------------------------+int GetStochSignal( double & stochD1, double & stochD2, double & stochK1, double & stochK2)
{
for ( int i= 1 ;i<= Bars ;i++)
{
if ((stochD2<stochK2) && (stochD1>stochK1)) // Если сигнальная линия пересекла главную снизу вверх..return (CROSSINGTOUP); //..значит, - пересечение вверхif ((stochD2>stochK2) && (stochD1<stochK1)) // Если сигнальная линия пересекла главную сверху вниз..return (CROSSINGTODOWN); // ..значит, - пересечение вниз
}
return (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Моментума |//+---------------------------------------------------------------------------------------+void GetMomentumSignal()
{
double momentum = iMomentum ( Symbol (),i_TF,i_momPeriod, 0 , 0 );
}
//+---------------------------------------------------------------------------------------+//| Получение общего сигнала для входа в рынок |//+---------------------------------------------------------------------------------------+int GetSignal()
{
for ( int i= 1 ;i<= Bars ;i++)
{
double i_maFast1 = iMA ( Symbol (),i_TF,i_maFastPeriod,i_maFastShift,i_maFastMethod, 0 ,i); // Вычисляем быстрые скользящие..double i_maFast2 = iMA ( Symbol (),i_TF,i_maFastPeriod,i_maFastShift,i_maFastMethod, 0 ,i+ 1 ); //..средниеdouble i_maSlow1 = iMA ( Symbol (),i_TF,i_maSlowPeriod,i_maSlowShift,i_maSlowMethod, 0 ,i); // Вычисляем медленные скользящие..double i_maSlow2 = iMA ( Symbol (),i_TF,i_maSlowPeriod,i_maSlowShift,i_maSlowMethod, 0 ,i+ 1 ); //..средниеdouble stochD1 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 1 ,i); // Вычисляем значения сигнальной линии..double stochD2 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 1 ,i+ 1 ); //..стохастикаdouble stochK1 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 0 ,i); // Вычисляем значения главной линии..double stochK2 = iStochastic ( Symbol (),i_TF,i_stoch_D,i_stoch_K,i_stoch_slowing, 0 , 0 , 0 ,i+ 1 ); //..стохастика
}
if ( GetCrossingMa( double & i_maFast1, double & i_maFast2, double & i_maSlow1, double & i_maSlow2)==CROSSINGTOUP || i_maFast1>i_maSlow1 )
return (SIGNAL_BUY);
}
//+---------------------------------------------------------------------------------------+//| Поиск своих ордеров |//+---------------------------------------------------------------------------------------+void FindOrders()
{
}
//+---------------------------------------------------------------------------------------+//| Функция start эксперта |//+---------------------------------------------------------------------------------------+int start()
{
//----//----return ( 0 );
}
function int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) çaprazlama sinyalini alır.
int GetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) işlevi , stokastikten bir sinyal alır.
void GetMomentumSignal() işlevi momentum değerini alır.
int GetSignal() işlevi, yalnızca onları değil, önceki 3 işlevi temel alan ortak bir sinyal alacaktır.Soru şudur. int GetSignal() işlevi tabiri caizse en önemlisi olduğu ve ana sinyali ürettiği için, kenelerin ( i_maFast1 , i_maFast2 , i _maSlow1 ve i_maSlow2 ) tüm değerlerini ve değerlerini alıyorum stokastiklerin ( stochD1 , stochD2 , stochK1 , stochK2 )
Sanırım bu durumda soruna en başarılı çözüm bu, pazartesiden itibaren deneyeceğim, çok teşekkür ederim.
Bir soru - sunucu saatini mi yoksa yerel saati mi belirteyim?
Yaratan, hatta onun Peygamberi bile değil, sadece bir doçent olduğunuz için neden yaratmaya ihtiyacınız var? Zamanlama hizmetini açmak (kapalı değilse) ve "Denetim Masası" nda aynı programları yapılandırmak yeterlidir ("Zamanlanmış görevler" kısayolu). Bilgisayarın, belirlenen zamanda terminal komut satırı aracılığıyla birer birer Expert Advisor'ları başlatmasına izin verin.
RAM miktarı, işletim sistemine ve donanımın bitliğine bağlıdır. Tek çekirdekli bir bilgisayara sahip olmanıza bakılırsa, donanımın 32 bit olduğu ve RAM'i 3 gig'e kadar artırabileceğiniz anlamına geliyor. Ancak anakarttaki verileri kontrol etmek daha iyidir, çünkü. tüm eski bilgisayarlar 2 gigabayttan fazlasını destekleyemez.
Eğer sizin için zor değilse, lütfen nokta nokta açıklayın, bu mekanizmayı başlatmak için nasıl ilerlemeliyim, çünkü hala zamanlama hizmetini, içindeki kontrol panelini, terminal komutunu nerede ve nasıl etkinleştireceğimi bilmiyorum. astar.
32 için daha fazlası mümkündür. Sadece anakart limitleri. Görünüşe göre 200 GB'a kadar bağlanabilir. Bir yerde bir masa gördüm.
"Windows Görev Zamanlayıcı" için google'a gidebilirsiniz.Buraya bakabilirsin.
Etkinleştirilmiş terminalleri devre dışı bırakmak için ayrı programlar (görevler) oluşturmanız mı gerekiyor?
İşte benim ham baykuş test eğitimim:
function int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) çaprazlama sinyalini alır.
int GetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) işlevi , stokastikten bir sinyal alır.
void GetMomentumSignal() işlevi momentum değerini alır.
int GetSignal() işlevi, yalnızca onları değil, önceki 3 işlevi temel alan ortak bir sinyal alacaktır.Soru şudur. int GetSignal() işlevi tabiri caizse en önemlisi olduğu ve ana sinyali ürettiği için, kenelerin ( i_maFast1 , i_maFast2 , i _maSlow1 ve i_maSlow2 ) tüm değerlerini ve değerlerini alıyorum stokastiklerin ( stochD1 , stochD2 , stochK1 , stochK2 )
Kod optimizasyonu açısından doğru olanı mı yaptım?
Evet, ancak GetSignal() işlevinde alınan tüm parametreler , ilgili işlevlere başvurularak iletilir.
Ama bu alanda
derleme sırasında bir hata oluşur:
İşte benim ham baykuş test eğitimim:
derleme sırasında bir hata oluşur:
Çünkü: