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

 
Roman. :

Ne kampı? Ne RAM'i? İşletim sistemi? Nasıl böyle bükülür ... tüm bunların ne kadar güvenilir çalışacağı henüz bilinmiyor ...

Örneğin, 58'i değil, her biri kendi hesabına sahip 29 terminali, elbette, birkaç döviz çiftini ve exp'yi birleştirerek (örneğin, birleştirmek için ilgili çiftlerle) ne yapılacağı sorusunu düşünmedik.

Kamp çekilirse, bu konuda zamanlayıcı ile hiçbir şey BULUŞMAYA gerek kalmayacak ...

Rağmen... :-)

Rakam elbette güzel: 58 exp, 58 terminal...

En azından derneklerim ... 58 papağan, 58 portakal, 58 milyon (kuruş olsa da! :-)

AMA diğer yandan 28'i de fena değil... Şehirde bir mağaza zincirimiz var: 28 portakal! :-)


Zulu projesi çerçevesinde piyasaya sürüldüler ve ben kendim nerede, ne zaman ve nasıl tökezleyeceklerini, diğer danışmanlar arasında hangi puanları alacaklarını bilmekle ilgileniyorum, ancak buradaki kazançlar minimum olsa da - 2 ay içinde sadece 3 dolar kazandım. 36 Expert Advisor'daki cent hesabı düzenli olarak düzenli bir şekilde çalışır - yatırılan 200$'dan, 40$'a kadar bir düşüş olmasına rağmen, şu anda fonlarda 150'si vardır. Bu hafta fonların geri getirileceğini ve görünüşe göre kârın daha da artması gerektiğini düşünüyorum. Biz teklif ederiz ve piyasa elden çıkarır.
 
yosuf :
Zulu projesi çerçevesinde piyasaya sürüldüler ve ben kendim nerede, ne zaman ve nasıl tökezleyeceklerini, diğer danışmanlar arasında hangi puanları alacaklarını bilmekle ilgileniyorum, ancak buradaki kazançlar minimum olsa da - 2 ay içinde sadece 3 dolar kazandım. 36 Expert Advisor'daki cent hesabı düzenli olarak düzenli bir şekilde çalışır - yatırılan 200$'dan, 40$'a kadar bir düşüş olmasına rağmen, şu anda fonlarda 150'si vardır. Bu hafta fonların geri getirileceğini ve görünüşe göre kârın daha da artması gerektiğini düşünüyorum. Biz teklif ederiz ve piyasa elden çıkarır.

Zulu olduğunu biliyorum. Onlar. 29 terminale erişimi olan iki benzer (örneğin, TİCARET TÜRÜ: trend/daire) fuarı birleştirmeyi planlıyor musunuz?

 
Roman. :

Zulu olduğunu biliyorum. Onlar. 29 terminale erişimi olan iki benzer (örneğin, TİCARET TÜRÜ: trend/daire) fuarını birleştirmeyi planlıyor musunuz?



Mümkün olmasına rağmen geri dönüş yok, ancak bunu başka bir projenin sınırları içinde yapmanız gerekiyor. Halihazırda çalışan Expert Advisor'ları durdurmak elverişsizdir. Parametrelerini optimize ederek, bazılarının geçici kârsızlığının nedenlerini anlamak için tüm danışmanları bir artıya getirmek gerekir. Kısacası çok çalışmak. Karşı trend tehlikelidir, çünkü şu anda önde olmalarına rağmen, derecelendirme dahil tüm göstergeleri anında mahvedebilir.
 
yosuf :
Mümkün olmasına rağmen geri dönüş yok, ancak bunu başka bir projenin sınırları içinde yapmanız gerekiyor. Halihazırda çalışan Expert Advisor'ları durdurmak elverişsizdir. Parametrelerini optimize ederek, bazılarının geçici kârsızlığının nedenlerini anlamak için tüm danışmanları bir artıya getirmek gerekir. Kısacası çok çalışmak. Karşı trend tehlikelidir, çünkü şu anda önde olmalarına rağmen, derecelendirme dahil tüm göstergeleri anında mahvedebilir.
Apaçık. Konum temel olduğundan - planlayıcıyla anlaşın!
 
yosuf :
Görevin çalışmasının nasıl durdurulacağına ilişkin bir seçeneği açıklar. Bunun platformun kapanmasına yol açıp açmayacağını bilmiyorum, deneyeceğim.
Platform hakkında bir şey söylemeyeceğim (bilmiyorum), ancak terminal kapanacak (teorik olarak). :)))
 
Vadeli işlemler için marjın nasıl hesaplanacağını söyleyebilir misiniz?
 
Roman. :

" Aynı verileri farklı fonksiyonlarda almamak için bunu yapmak istiyorum. Aynı daktiloyu 2 veya daha fazla fonksiyonda hesaplamak mantıklı değil. Sadece bir kez hesapladım ve bu kadar. Neden buna ek kaynak harcıyorum?"

Belgelerde yazıldığı gibi yapın ve tekerleği yeniden icat etmeye gerek yok.

Peki ya bu döngü?

 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 );   //..стохастика
   }

Adımları kendiniz uygulayın, çıkmanın bir sonucu olarak ne olacak ve bundan sonra ne yapacaksınız? Brad tamamlandı.

Ders kitabında olduğu gibi yapın - alım satım kriterlerinin tetiklenmesini belirlemek için bu fonksiyondaki tüm alım satım sinyalleri sıralıdır (farklı sinyalleri farklı fonksiyonlara sarabilir ve ancak o zaman bu alım satım kriterlerinin tetiklenmesini kontrol ederken onlarla çalışabilirsiniz), ardından koşullar onların tetiklenmesi.

Döngü ile ilgili olarak, çünkü göstergelerin parametrelerinin kesişimini kontrol edeceğim. Burada her şey temel. Okuyorum, okuyorum, her şey düşündüğüm gibi yazılmış.

https://book.mql4.com/en/build/conditions eğitiminde her şey darmadağın. Orada MACD ve stokastik aynı işlevde ama benim böyle bir şeye ihtiyacım yok.

Ve aslında, referansa göre tüm gösterge değerleri ilgili işlevlere aktarılmalıdır. Neden? Mantıklı.

 
TarasBY :
Söyledikleriniz ve "çizdikleriniz" İKİ BÜYÜK FARK!!! :)))

Che ve ben zaten tamamen kafamız karıştı. İşte her biri belirli bir hindi için kendi özel sinyalini alan 3 fonksiyon.

 //+---------------------------------------------------------------------------------------+
//| Проверка пересечения скользящих средних                                               |
//+---------------------------------------------------------------------------------------+
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)
{
       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 );
}

Bu fonksiyon tüm hindilerden ortak bir sinyal alır ve AL veya SATIŞ kararı verir.

 //+---------------------------------------------------------------------------------------+
//| Получение общего сигнала для входа в рынок                                            |
//+---------------------------------------------------------------------------------------+
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);
}

Ve bu, genel sinyalin elde edildiği ana fonksiyondur, burada hindilerin değerlerini tüm çubuklardan geçmek için bir döngüden alıyoruz. işlevde:

int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, çift& i_maSlow2)

int GetStochSignal(double&stochD1, double&stochD2, double&stochK1, double&stochK2)

void GetMomentumSignal() , prensipte onu oraya da itebilirsiniz.

Böylece, hindilerin tüm hesaplamalarının bir sinyal alma ana işlevinde olacağı ortaya çıkıyor. Burada her şey mantıklı.

 

Grafiğe eklendikten hemen sonra program init() işleviyle çalışmaya başlar. Bir Uzman Danışmanın init() işlevi veya bir grafiğe eklenmiş özel bir gösterge , müşteri terminali başlatıldıktan ve finansal araç değiştirildikten sonra ( bu yalnızca Uzman Danışmanlar için geçerlidir ve göstergeler için geçerli değildir ) geçmiş verileri yükledikten hemen sonra başlatılır. ve/veya çizelge periyodu, programı MetaEditor'da yeniden derledikten sonra, bir uzmanın veya özel bir göstergenin ayarlar penceresinden giriş parametrelerini değiştirdikten sonra. EA, hesap değiştirildikten sonra da başlatılır.

Lütfen nasıl çalıştığını açıklar mısınız? Arka planda mı yoksa bir şekilde takip etmek mümkün mü? Yoksa göstergedeki init işlevi, terminal uzun bir boşta kalma süresinden sonra başladığında hiç başlamaz mı?

 
fore-x :

Grafiğe eklendikten hemen sonra program init() işleviyle çalışmaya başlar. Bir Uzman Danışmanın init() işlevi veya bir grafiğe eklenmiş özel bir gösterge, müşteri terminali başlatıldıktan ve finansal araç değiştirildikten sonra ( bu yalnızca Uzman Danışmanlar için geçerlidir ve göstergeler için geçerli değildir ) geçmiş verileri yükledikten hemen sonra başlatılır. ve/veya çizelge periyodu, programı MetaEditor'da yeniden derledikten sonra, bir uzmanın veya özel bir göstergenin ayarlar penceresinden giriş parametrelerini değiştirdikten sonra. EA, hesap değiştirildikten sonra da başlatılır.

Lütfen nasıl çalıştığını açıklar mısınız? Arka planda mı yoksa bir şekilde takip etmek mümkün mü? Yoksa göstergedeki başlatma işlevi, terminal uzun bir boşta kalma süresinden sonra başladığında hiç başlamaz mı?

Expert Advisor'ın tüm çalışması boyunca değişmeyecek verileri orada depolamak için init işlevine ihtiyaç vardır. Bu, programı yükledikten sonra yalnızca bir kez hesaplanacak ve artık yeniden hesaplama gerektirmeyen bazı veriler olabilir. Ben böyle anlıyorum.

Ve değişkenlerin değerlerinin yeniden hesaplanması gerekiyorsa, örneğin her yeni bar , o zaman bu tür değişkenler init işlevinde bildirilmemelidir. orada sayılmazlar.

Anlamayı kolaylaştırmak için, init içinde bildirebileceğiniz ve bildirmeniz gerekenler şunlardır:

   Tick = MarketInfo ( Symbol (), MODE_TICKSIZE);                         // минимальный тик    
   Spread = ND( MarketInfo ( Symbol (), MODE_SPREAD)* Point );                 // текущий спрэд
   StopLevel = ND( MarketInfo ( Symbol (), MODE_STOPLEVEL)* Point );   // текущий уровень стопов
   MinLot = MarketInfo ( Symbol (), MODE_MINLOT);     // минимальный разрешенный объем сделки
   MaxLot = MarketInfo ( Symbol (), MODE_MAXLOT);   // максимальный разрешенный объем сделки
   LotStep = MarketInfo ( Symbol (), MODE_LOTSTEP);           // шаг приращения объема сделки

Bu, piyasadan alınan bir veri koleksiyonudur ve bu veriler değişmez. Burada Spread değişkeni ile bu zaten bir soru olsa da .. spread sabit değilse, bence bunu ayrı işlevlere koymak daha iyidir.