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

 
Санек :

1) - Bu bölüm, 11112222.txt dosyasını buradan veri okumak için açar:

//=================================BUY=========================================
    int handle2 = FileOpen("11112222.txt", FILE_CSV|FILE_READ, ";");//код открывает файл для чтения

2) - Ardından, handle2>0 ise koşul gelir


  if(handle2>0) // если в файле больше 0, то есть 1, то открывать BUY
   {

3) - İşte anlamadığım bu kısım:


       Print(FileReadString(handle2));

4) - Bu kısım dosyayı kapatır:


       FileClose(handle2); // закрытие текстового файла

5) - Handle2>0 koşulu karşılandığından, yani 11112222.txt dosyası 1 içerdiğinden, bir satın alma emri açılır:

  //ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ      
                    if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку
                     {
                        OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0); // первым указывается ЛОСЬ, вторым ПРОФИТ
                        FileClose(handle2); // закрытие текстового файла
                     }
                    else
                      Print("NE USPESHNO!!!");
                      FileClose(handle2); // закрытие текстового файла

   }
//=================================конец кода BUY=========================================

Hangi kısımları karıştırdım?

1) dosyayı açar ancak içeriğini okumaz.

2) dosya tanıtıcısı HER ZAMAN sıfırdan büyüktür. Buna göre, içeriğinden bağımsız olarak dosya varsa koşul her zaman karşılanacaktır.

3) Bu sadece dosyanın içeriğini okuyor. Doğru, bir sayı okumanız gerekiyorsa neden bir satır okumanın yapıldığını anlamıyorum ... Ama yine de, bu zaten başka bir sorunla ilgili olabilir. Ve şimdi asıl şey, eylem sırasını boyamak.

4) Tabii ki dosya kapatılmalı ve kapanıyor.

Ve sadece bir sonraki paragraf, ikinci paragrafta değil, 3. paragrafta ne okunduğuna bağlı olarak bir koşul koymalıdır.

 
Alexey Viktorov :

1) dosyayı açar ancak içeriğini okumaz.

2) dosya tanıtıcısı HER ZAMAN sıfırdan büyüktür . Buna göre, içeriğinden bağımsız olarak dosya varsa koşul her zaman karşılanacaktır.

3) Bu sadece dosyanın içeriğini okuyor. Doğru, bir sayı okumanız gerekiyorsa neden bir satır okumanın yapıldığını anlamıyorum ... Ama yine de, bu zaten başka bir sorunla ilgili olabilir. Ve şimdi asıl şey, eylem sırasını boyamak.

4) Tabii ki dosya kapatılmalı ve kapanıyor.

Ve sadece bir sonraki paragraf, ikinci paragrafta değil, 3. paragrafta ne okunduğuna bağlı olarak bir koşul koymalıdır.

Yooo... INVALID_HANDLE -1

İşte o zaman dosya açma hatası alır, sonra sat sinyali alır...

Diğer sabitler

Parametrelerin ve değişkenlerin durumunu belirtmek için kullanılan özel sabitler. Aşağıdaki değerler olabilir:

Devamlı

Tanım

Anlam

BOŞ

Her türlü sıfır. Ayrıca dizenin boş durumunu gösterir

0

BOŞ

Parametrenin boş durumunu gösterir

-1

BOŞ_VALUE

Gösterge arabelleğinde boş değer

2147483647 (0x7FFFFFFF)

CLR_NONE, clrNONE

Renk eksikliği. Varsayılan değer, bir boş değer işaretçisi. Özel göstergelerde kullanılır

-1

CHARTS_MAX

Terminalde mümkün olan maksimum eşzamanlı açık çizelge sayısı

100

GEÇERSİZ TUTAMAÇ

Yanlış tanıtıcı

-1

IS_DEBUG_MODE

Hata ayıklama modunda bir mq5 programı çalıştırmanın işareti

hata ayıklama modunda sıfır değil, aksi takdirde 0

IS_PROFILE_MODE

Profil oluşturma modunda bir mq5 programı çalıştırmanın işareti

profil oluşturma modunda sıfır değil, aksi takdirde 0

WHOLE_ARRAY

Dizinin sonuna kadar kalan eleman sayısı anlamına gelir, yani tüm dizi işlenecektir.

0

YANLIŞ DEĞER

Bir sabit, herhangi bir enum türüne dolaylı olarak aktarılabilir

-1

 

Bu konuyu görmemiştim yeni konu açtım. Lütfen https://www.mql5.com/ru/forum/206126 adresine bakın.

Как в тестере стратегий получить TimeGMT();
Как в тестере стратегий получить TimeGMT();
  • 2017.06.28
  • www.mql5.com
Справочник MQL5, Дата и время, TimeGMT TimeGMT - При работе в тестере стратегий время TimeGMT() всегда равно моделируемому серверному времени TimeT...
 
Alexey Viktorov :

1) dosyayı açar ancak içeriğini okumaz.

2) dosya tanıtıcısı HER ZAMAN sıfırdan büyüktür. Buna göre, içeriğinden bağımsız olarak dosya varsa koşul her zaman karşılanacaktır.

3) Bu sadece dosyanın içeriğini okuyor. Doğru, bir sayı okumanız gerekiyorsa neden bir satır okumanın yapıldığını anlamıyorum ... Ama yine de, bu zaten başka bir sorunla ilgili olabilir. Ve şimdi asıl şey, eylem sırasını boyamak.

4) Tabii ki dosya kapatılmalı ve kapanıyor.

Ve sadece bir sonraki paragraf, ikinci paragrafta değil, 3. paragrafta ne okunduğuna bağlı olarak bir koşul koymalıdır.

Sevgili MQL guruları - Eğer sizin için zor değilse, o zaman lütfen bana bu kodla yardım edin, yarım gündür arama motorlarını arıyorum ama buna benzer bir şey bulamıyorum.

Aynı yerde birkaç satırlık bir mesele, bilenler için üç dakikalık bir mesele)))

 

C++'da dll'deki mql4'ten bir dize nasıl kabul edilir ve char*'a dönüştürülür?

 struct MqlStr
{
         int                len;
         char              * string ;
};

static int proc_func( char * Name);

MT4_EXPFUNC int __stdcall myfunc(MqlStr sym_name)
{
        proc_func(sym_name[ 0 ]. string );
        
}
int proc_func( char * Name)
{
}
Bu doğru kod mu?
 

Merhaba! Lütfen söyle bana, danışman yaklaşık bir yıl önce yazdı , her şey yolunda gitti. Bunca zaman kullanmadım. Şimdi grafiğe yüklediğimde hiçbir şey olmuyor. Belki de Yapı değiştiği içindir? Şimdi terminal 1090'ı oluşturun.

 
Санек : Sevgili MQL guruları - eğer sizin için zor değilse, o zaman lütfen bana bu kodla yardım edin, yarım gündür arama motorlarını arıyorum ama buna benzer bir şey bulamıyorum.

Aynı yerde, kampanya bilgili olanlar için birkaç satırda - üç dakika meselesi )))

2 saat geçirdi . Sistemi parçalar halinde kontrol etmeniz gerekiyor. Her iki danışmanı da bitişik çizelgelerde aynı anda çalıştırın - her şey görünür olacaktır. Uzman Danışman 1 = Dosyaya yaz

 //+------------------------------------------------------------------+
//| Запись в файл -1  0  1                                     1.mq4 |
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//| Инициализация - установка интервала таймера                      |
//+------------------------------------------------------------------+
void OnInit()
{
   EventSetTimer(7);
}


//+------------------------------------------------------------------+
//| Деинициализация - удаление метки                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int Зачем)
{
   ObjectDelete("Семафор");
}


//+------------------------------------------------------------------+
//| По таймеру каждые 7 секунд                                       |
//+------------------------------------------------------------------+
void OnTimer()
{
   int x=0;
   if(rand()<20000)
   {
     x=1;
     if(rand()<16000) x=-1;
   }

   ObjectCreate("Семафор",OBJ_LABEL,0,0,0);
   ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0);  // Создание
   ObjectSet("Семафор", OBJPROP_CORNER, 3);      // В правый нижний угол
   ObjectSet("Семафор", OBJPROP_XDISTANCE, 0);   // Координата X   
   ObjectSet("Семафор", OBJPROP_YDISTANCE, 40);  // Координата Y
   ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow);
   ChartRedraw(0);
   Sleep(2000);

   int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE);
   if(handle == -1)
   {
      ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon);
      ChartRedraw(0);
      return;
   }

   ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue);
   ChartRedraw(0);

   FileWriteInteger(handle, x, 4);
   Sleep(2000);

   ObjectSetText("Семафор","",20,"Arial",White);
   ChartRedraw(0);
   FileClose(handle);
}

Uzman Danışman 2 = Dosya okuma

 //+------------------------------------------------------------------+
//| Чтение файла  -1  0  1                                     2.mq4 |
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//| Инициализация - установка интервала таймера                      |
//+------------------------------------------------------------------+
void OnInit()
{
   EventSetTimer(1);
}


//+------------------------------------------------------------------+
//| Деинициализация - удаление метки                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int Зачем)
{
   ObjectDelete("Семафор");
}


//+------------------------------------------------------------------+
//| По таймеру каждую секунду                                        |
//+------------------------------------------------------------------+
void OnTimer()
{
   int x=0;

   ObjectCreate("Семафор",OBJ_LABEL,0,0,0);
   ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0);  // Создание
   ObjectSet("Семафор", OBJPROP_CORNER, 2);      // В правый нижний угол
   ObjectSet("Семафор", OBJPROP_XDISTANCE, 0);   // Координата X   
   ObjectSet("Семафор", OBJPROP_YDISTANCE, 40);  // Координата Y
   ObjectSetText("Семафор","",20,"Arial",Yellow);
   ChartRedraw(0);

   Sleep(500);
   int handle = FileOpen("123.txt", FILE_BIN | FILE_READ);  // Получаем НОМЕР файла в ОС
   if(handle == -1)                // Если производится запись , файл занят , будет ошибка
   {
      ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon);
      ChartRedraw(0);
      return;
   }

   x = FileReadInteger(handle,4);                          // Получаем СОДЕРЖИМОЕ файла
   ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue);
   ChartRedraw(0);

   FileClose(handle);
}
 
toni_stark :

Merhaba! Lütfen söyle bana, danışman yaklaşık bir yıl önce yazdı , her şey yolunda gitti. Bunca zaman kullanmadım. Şimdi grafiğe yüklediğimde hiçbir şey olmuyor. Belki de Yapı değiştiği içindir? Şimdi terminal 1090'ı oluşturun.


Büyük olasılıkla, birçok yenilik vardı. Derleme hatalarını kontrol ederek başlayın. #PropertyStrict yönergesi ile

 
Vladimir Zubov :

Büyük olasılıkla, birçok yenilik vardı. Derleme hatalarını kontrol ederek başlayın. #PropertyStrict yönergesi ile

Böyle bir talimat yok...

Bunun gibi bir tane var:

 #property strict
 
Vladimir Zubov :

Büyük olasılıkla, birçok yenilik vardı. Derleme hatalarını kontrol ederek başlayın. #PropertyStrict yönergesi ile


Artyom Trishkin :

Böyle bir talimat yok...

Bunun gibi bir tane var:


Fakat ex4 uzantılı bilgisayarda bulunan Expert Advisor dosyasını açamıyorum fakat bu dosya MetaEditor üzerinden mevcut değil. Lütfen bana nedeninin ne olabileceğini söyle.