Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 211

 

Merhaba bilenler!

Söyleyin lütfen, MT4'ü Linux işletim sistemli bir VPS sunucusuna kurmak mümkün müdür? Uzman Danışmanlar böyle bir MT'de normal şekilde çalışacak mı?

 

Merhaba.

Kontrol ve risk yönetimi için EA yapıyorum. Çalışan tüm EA'ların ticaret yapmasını yasaklamanın en iyi yolu nedir? Örneğin, belirli bir sembol için, çalışan tüm EA'ların yeni işlemlere girmesini yasaklıyoruz. Ne yazık ki, çalışan tüm EA'lar için kaynak yoktur ve global değişkenleri kullanmak işe yaramaz.

 

odyn :

Linux işletim sistemi ile?

Michael Linux'ta çalışıyor. Ona yaz https://www.mql5.com/ru/users/nikelodeon

Mihail Marchukajtes
Mihail Marchukajtes
  • www.mql5.com
Добавил тему Целевая функция в тестере Коллеги решил выделить вопрос в отдельную тему. При оптимизации параметров советника существует ряд стандартных функций, а так же "Максимум пользовательского критерия" что позволяет производить подбор относительно собственной целевой, пусть даже Если Вы являетесь владельцем инвестиционного фонда и...
 

İyi akşamlar!

Lütfen aşağıdaki soruya yardım edin:

Kaç mumun daha yükseğe kapandığını bulmamız gerekiyor   hareketli ortalama ve ne kadar düşük.

Örneğin: Kapanış fiyatındaki 20 mum, 20'lik bir süre ile hareketli ortalamanın üzerinde kapanırsa, o zaman bir şey yaparız, aşağıdaysa başka bir şey yaparız.

Teşekkür ederim!

Moving Average of Oscillator (OsMA)
Moving Average of Oscillator (OsMA)
  • www.mql5.com
On Balance Volume (OBV) Индикатор Балансового Объема (On Balance Volume, OBV) связывает объем и изменение цены, сопровождавшее данный объем. Momentum Индикатор движущей силы рынка (Momentum) измеряет величину изменения цены финансового инструмента за определенный...
 
leonerd :
Çalışan tüm EA'ların ticaret yapmasını yasaklamanın en iyi yolu nedir?

Danışman kodunu değiştiremiyorsanız, otomatik alım satımı devre dışı bırakın. İşte kod, benim değil:

#include <WinUser32.mqh>

#import "user32.dll"
// Считывает описатель оpгана упpавления, содеpжащийся в указанном блоке диалога. Возвpащаемое значение: идентификатоp оpгана упpавления; 0 - если указанный оpган упpавления не существует.
int       GetDlgItem( int hDlg,         // Блок диалога, содеpжащий оpган упpавления.
                     int nIDDlgItem); // Идентификатоp оpгана упpавления.
// Возвращает идентификатор hierarchyid, представляющий n-го предка данного элемента.
int       GetAncestor( int hWnd,       // Идентификатоp окна.
                       int gaFlags);   // Уровень окна от текущего окна (1, 2, 3...).
int       SendMessageA( int   hWnd,       // Окно, пpинимающее сообщение или $FFFF для посылки всем всплывающим окнам в системе.
                       int   Msg,       // Тип сообщения.
                       int   wParam,     // Дополнительная инфоpмация о сообщении.
                       int & lParam[]); // Дополнительная инфоpмация о сообщении.
                  
#import

void start() {
   if (IsExpertEnabled()) ExpertEnabled ( false );
       else ExpertEnabled ( true );
}

// Функция включения/отключения эксперта.
void ExpertEnabled ( bool Switch) // TRUE - включить эксперт, FALSE - отключить эксперт.
{
   int HandlWindow = WindowHandle ( Symbol (), Period ()); // Системный дескриптор окна.
   int HandlMT4;         // Системный дескриптор окна МТ4.
   int HandlToolbar;     // Системный дескриптор окна инструментов.

   int     ArIntTemp[ 1 ]; // Временный массив.
   //----
   if ((Switch && !IsExpertEnabled()) || (!Switch && IsExpertEnabled()) )  {
     HandlMT4 = GetAncestor (HandlWindow, 2 ); 
     HandlToolbar = GetDlgItem (HandlMT4, 0x63 );
     ArIntTemp[ 0 ] = HandlToolbar;
     SendMessageA (HandlMT4, WM_COMMAND, 33020 , ArIntTemp);
  }
}
 
Xopb :

Kaç mumun daha yükseğe kapandığını bulmamız gerekiyor   hareketli ortalama ve ne kadar düşük.

1. Hangi andan itibaren saymak istediğinize kendiniz karar verin.

2. İki elemanlı bir dizi oluşturun.

3. İstediğiniz öğeye her muma bir tane ekleyin.

4. Saymayı ne zaman durdurmak istediğinize karar verin.


Hareketli ortalama , fiyatın gecikmeli kuyruğudur. Kâr orada yaşamaz.

 
Aleksei Stepanenko :

1. Hangi andan itibaren saymak istediğinize kendiniz karar verin.

2. İki elemanlı bir dizi oluşturun.

3. İstediğiniz öğeye her muma bir tane ekleyin.

4. Saymayı ne zaman durdurmak istediğinize karar verin.


Hareketli ortalama , fiyatın gecikmeli kuyruğudur. Kâr orada yaşamaz.

Teşekkürler Alekse!

Lütfen bana dizilerin nereye ekleneceğini ve çalışmasını sağlamak için bir tane söyler misiniz?

 for ( int i= 1 ;i<= 10 ;i++)             //допустим надо проверить 10 свечей выше или ниже МА в момент когда обратились к этому оператору
     {    
     double hig10 = iMA ( NULL , PERIOD_H1 , 10 , 0 , MODE_SMA , PRICE_CLOSE , i);
       if (hig10> iClose ( Symbol (), PERIOD_H1 ,i))
      {
     // тут выполняем - если все 10 свечей выше МА     
      }
       else
      {
     //тут выполняем - если если хотябы одна из свечей закрылась нижн MA
      }
      
     } 
     




 

Bir yapı yapmak daha da iyidir

 struct Count
   {
   int up;
   int dn;
   } count;

kullanmadan önce öğeleri sıfırlamayı unutmayın

count.up= 0 ;
count.dn= 0 ;

ve gerektiğinde puanı daha da artırmak

count.up++;

//или
count.dn++;

sonra karşılaştır

 if (count.up> 10 )
   {

   }
Artık her yeni mumda önceki 10 mum arasında geçiş yaptınız. Bu rasyonel değil. Önceki değerlerin hesaplama sonuçlarını hatırlayarak her zaman gereksiz döngülerden kurtulmalısınız. Sizin durumunuzda, yeni bir mum geldiğinde, koşul yerine getirilirse hesabı artırmanız ve koşul karşılanmaması durumunda çıkarmanız yeterlidir. Ve fazlalık olup olmadığını kontrol edin. 10 maddelik döngünüz gerekli değil, sadece ana döngü.
 
Aleksei Stepanenko :

Danışman kodunu değiştiremiyorsanız, otomatik alım satımı devre dışı bırakın. İşte kod, benim değil:

Teşekkür ederim. Bu kod, belirtilen çizelgeye eklenmiş belirli bir EA için otomatik alım satımı devre dışı bırakır mı? Veya terminalde genel otomatik ticaret?

 

Tüm ticaret, bu düğme: