MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1238

 
Oleg Remizov :

Ve gözlemlerime göre, kullanıcılar danışman ekranda farklı bilgiler gösterdiğinde bundan hoşlanıyor: "yapay zekanın" güçlü etkinliğini göstermek için oklar, çizgiler, kanallar vb. çiziyor.)

Göstergelere göre, danışman takip sağlar. Kullanıcının StopLoss'un çizildiği noktalı çizgiyi görebilmesi için bu işlemi görselleştirmek istiyorum.

Trendline'ı kullanın, ilk bağlantı noktası mevcut çubuktur ve ikincisi geçmişe 1 çubuktur, kalınlığı 2-3 olarak ayarlayın

 
Vitaly Muzichenko :

Trendline'ı kullanın, ilk bağlantı noktası mevcut çubuktur ve ikincisi geçmişe 1 çubuktur, kalınlığı 2-3 olarak ayarlayın

İyi fikir! Çok teşekkür ederim, olması gerektiği gibi görünüyor.

modaya uygun

 
ANDREY :

Kovalev'in, bildirimiyle aynı anda dizi başlatma hakkındaki öğreticisinde şöyle yazıldığı:

8.4.4 Bir diziyi başlatma

Bir dizi yalnızca karşılık gelen türdeki sabitlerle başlatılabilir.Tek boyutlu ve çok boyutlu diziler, virgülle ayrılmış tek boyutlu bir sabit dizisiyle başlatılır. Dizi küme parantezleri içine alınır:

int Mas_i[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 };

double Mas_d[2][3] = { 0.1, 0.2, -0.3, -10.2, 1.5, 7.0 };

bool Mas_b[5] = { yanlış, doğru, yanlış, doğru, doğru }

Başlatma dizisinde, bir veya daha fazla sabitin atlanmasına izin verilir.

Ders kitabından bana öyle geliyor ki, bir dizi bildirildiğinde, dizinin yalnızca ilk öğesiyle değil, tüm verilerle tam olarak başlatılır.
Öğreticiyi yanlış anladıysam, yanlış anladığımı belirtirseniz minnettar olurum.

ders kitabınızı tartışmak için en ufak bir istek değil, okumadı

ve burada forumda ders kitabının modası geçmiş ve alakalı olmadığını yazdı

iki boyutlu bir dizi şu şekilde başlatılabilir:

 int arr[ 2 ][ 5 ] = {{ 1 , 2 , 3 , 4 , 5 ,}, { 6 , 7 , 8 , 9 , 10 }};
 
Igor Makanu :

ders kitabınızı tartışmak için en ufak bir istek değil, okumadı

ve burada forumda ders kitabının modası geçmiş ve alakalı olmadığını yazdı

iki boyutlu bir dizi şu şekilde başlatılabilir:

Yardımın için çok teşekkürler. Düşüncelerimi doğru tahmin ettin. İki boyutlu bir dizinin nasıl başlatılacağı konusunda kafamı kaşıyorum ama yalnızca ArrayInitialize () işleviyle ;
Bu işlevin referansı, bana göründüğü gibi, yalnızca tek boyutlu bir diziyi başlatma hakkında bilgi verir.
tavsiye verebilirseniz çok minnettar olurum.

 
ANDREY :

Yardımın için çok teşekkürler. Düşüncelerimi doğru tahmin ettin. İki boyutlu bir dizinin nasıl başlatılacağı konusunda kafamı kaşıyorum ama yalnızca ArrayInitialize() işleviyle ;
Bu işlevin referansı, bana göründüğü gibi, yalnızca tek boyutlu bir diziyi başlatma hakkında bilgi verir.
tavsiye verebilirseniz çok minnettar olurum.

ArrayFill() , bir dizinin tüm öğelerini istenen değerle doldurmanıza olanak tanır ve iki boyutlu bir dizi için kullanılabilir. Bir örnek için bu işlevin yardımına bakın.

Bu arada, ArrayInitialize() öğesini iki boyutlu bir diziye uygulandığında kontrol ettim, aynı zamanda çalışıyor. Yalnızca her iki durumda da tüm öğeleri yalnızca belirli bir değerle başlatabilirsiniz.

Her öğe için bir değer ayarlamanız gerekirse, bu işlevler çalışmayacaktır.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
 
Oleg Remizov :

ArrayFill() , bir dizinin tüm öğelerini istenen değerle doldurmanıza olanak tanır ve iki boyutlu bir dizi için kullanılabilir. Bir örnek için bu işlevin yardımına bakın.

Bu arada, ArrayInitialize() öğesini iki boyutlu bir diziye uygulandığında kontrol ettim, aynı zamanda çalışıyor. Yalnızca her iki durumda da tüm öğeleri yalnızca belirli bir değerle başlatabilirsiniz.

Her öğe için bir değer ayarlamanız gerekirse, bu işlevler çalışmayacaktır.

Yardımın için çok teşekkürler.

 
Oleg Remizov :

Ne yazık ki şablon benim için çalışmıyor. Ayarlarda göstergelerin görüntülenmesi işlevinin açılması / kapatılması gerekir ve çizim doğrudan danışmandan yapılır. Böylece danışman tek bir dosyada aktarılabilir.

Ok yerine, aynı fiyat ve zamanda her iki noktayı da içeren bir trend çizgisi çizin. Ortaya çıkan noktanın boyutunu ayarlamak için çizgi kalınlığını kullanın.

 
Merhaba, ben bir Acemiyim ve hesaptan nasıl para çekileceğini ve ardından ne zaman para yatırmanın gerekli olacağını açıklamak istiyorum.
 

Selamlar.

MT4'te böyle bir şey var:

 #import "user32.dll"
   int SendMessageA( int hWnd, int Msg, int wParam, char &lParam[]);
   int RegisterWindowMessageA( uchar &lParam[]);
#import

string IndiName= "TestBot" ;

void OnStart ()
  {
   char buf[];
   StringToCharArray ( "MetaTrader4_Internal_Message" , buf);
   int MT4InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray (IndiName, buf);
   long handle= ChartGetInteger ( 0 , CHART_WINDOW_HANDLE );
   Print (MT4InternalMsg);
   bool res=SendMessageA(( int )handle, MT4InternalMsg, 14 , buf);
   Print ( "Функция SendMessageA завершила работу с результатом: " ,res);
  }

Bu kod, belirli bir Uzman Danışmanı başlatmak için terminal penceresine bir komut gönderir.

MT5 için benzer bir işlevsellik var mı?

Bu şekilde denedim:

 #import "user32.dll"
   int SendMessageA( long hWnd, long Msg, uint wParam, uchar &lParam[]);
   int RegisterWindowMessageA( uchar &lParam[]);
#import

string IndiName= "TestBot" ;

void OnStart ()
  {
   uchar buf[];
   StringToCharArray ( "MetaTrader5_Internal_Message" , buf);
   long MT5InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray (IndiName, buf);
   long handle= ChartGetInteger ( 0 , CHART_WINDOW_HANDLE );
   Print ( "Window handle: " , handle);
   Print ( "Message: " ,MT5InternalMsg);
   for ( int i = 0 ; i< 100 ; i++){
       bool res=SendMessageA(handle, MT5InternalMsg, i , buf);
       printf ( "Функция SendMessageA завершила работу с результатом: %d, номер: %d " ,res, i);
   }
  }

aşmaz.

casus ++ taramaya çalıştım, ancak MT4'ün aksine MT5'te kelimeden hiç mesaj yok.

Sadece uzman ayarları penceresini aramam gerekiyor.

 
50211108 :
Merhaba, ben bir Acemiyim ve hesaptan nasıl para çekileceğini ve ardından ne zaman para yatırmanın gerekli olacağını açıklamak istiyorum.

Yalnızca bu kaynaktan kazanılanları çekebilirsiniz ve bu, programların, sinyallerin ve bilgisayar kapasitelerinin satışıdır. Girilenler yalnızca bu kaynağa harcanabilir.