[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 500

 
yosuf :

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?

Windows'unuzun zamanlayıcısı DC terminal sunucusunun sunucu zamanını nasıl biliyor ??? - elbette bilgisayarınızın zamanı.
 
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.
 
Zhunko :
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.
Vadim, böyle bir kilit açmayı mı kastediyorsun?
 
TarasBY :
"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?
 
yosuf :
Etkinleştirilmiş terminalleri devre dışı bırakmak için ayrı programlar (görevler) oluşturmanız mı gerekiyor?
Doç. Dr. TarasBY'den linkteki belgeyi dikkatlice okuyun ve saçma sapan şeyler uydurmayın.
 

İşte benim ham baykuş test eğitimim:

//+---------------------------------------------------------------------------------------+
//|                               Strategy №1 for H1.mq4                                  |
//|                                        hoz                                            |
//|                                                                                       |
//+---------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link       ""

//----- Входные параметры -----------
extern string      H1 = "___ Общие параметры индикаторов ___" ;
extern int         i_TF = 60 ;
extern string      H2 = "_____ Параметры быстрой машки _____" ;
extern int         i_maFastPeriod = 5 ,
                  i_maFastShift = 0 ,
                  i_maFastMethod = 1 ;
extern string      H3 = "____ Параметры медленной машки ____" ;
extern int         i_maSlowPeriod = 19 ,
                  i_maSlowShift = 0 ,
                  i_maSlowMethod = 1 ;
extern string      H4 = "_______ Параметры Моментума _______" ;
extern int         i_momPeriod = 18 ;
extern string      H5 = "_______ Параметры Стохастика ______" ;
extern int         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 )

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

     if ( GetCrossingMa( double & i_maFast1, double & i_maFast2, double & i_maSlow1, double & i_maSlow2)==CROSSINGTOUP || i_maFast1>i_maSlow1 )
       return (SIGNAL_BUY);

derleme sırasında bir hata oluşur:

'&' - variable expected E:\Insall'd soft's\Forex\Admiral Markets\experts\Strategy №1 for H1.mq4 (109, 31)
'&' - variable expected	E:\Insall'd soft's\Forex\Admiral Markets\experts\Strategy №1 for H1.mq4 (109, 50)
'&' - variable expected	E:\Insall'd soft's\Forex\Admiral Markets\experts\Strategy №1 for H1.mq4 (109, 69)
'&' - variable expected	E:\Insall'd soft's\Forex\Admiral Markets\experts\Strategy №1 for H1.mq4 (109, 88)
4 ошибок, 0 предупреждений
  
Niye ya?

 
Sol kodlara dalmayı sevmiyorum ama double sonrası fonksiyonlarda neden &(!) olduğu hemen gözüme çarptı. Bu hata veriyor!
 
hoz :

İşte benim ham baykuş test eğitimim:

derleme sırasında bir hata oluşur:

Niye ya?

Çünkü:

 //+---------------------------------------------------------------------------------------+
//| Получение общего сигнала для входа в рынок                                            |
//+---------------------------------------------------------------------------------------+
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( i_maFast1, i_maFast2, i_maSlow1, i_maSlow2 )==CROSSINGTOUP || i_maFast1>i_maSlow1 )
       return (SIGNAL_BUY);
}