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

 
rriaz # :
Daha fazla an var. Babam bile şifreyi bilmediğini söylüyor! (Yarın yanında olacağım, ekran görüntüsü veya başka bir şey alabilirim. Program sadece telefona kurulur.

Üzgünüm, daha ziyade bunlar dolandırıcı ve kolluk kuvvetlerine gitmeniz gerekiyor.

 
Alexey Viktorov # :

Belki de sorun budur ? Kaynağı düzenli aralıklarla silmeyi deneyin

ama sonra onu dinamik olarak yaratmalısın

Yani, önce kaynağı silin, ardından yeniden oluşturun. Tek sorun, nasıl çalışacağını bilmemem . Evet ve hiç olup olmayacağı. Denemek gerek…

Yardım etmedi. ResourceCreate, yalnızca görüntü içeren yeni bir dosya oluşturur, bu nedenle göstergeyi görmez. Anladığım kadarıyla, hafızayı periyodik olarak temizlemeniz gerekiyor. ZeroMemory ile bir şeyler bulmaya çalışacağım

 

Merhaba. İstenen şablonu tüm çizelgelere yüklemek için komut dosyasına göre, hikaye budur.

Aşağıdaki ölçekleme ekranı şablonuyla tf n1'de hepsi farklı olan 8 grafik açıyorum.

SAÇLAMA ŞABLONU OLAN 8 AÇIK TABLO

En soldaki grafiğe ( AUD / USD ) tüm çizelgeleri d1'e aktarmak için bir komut dosyası ve orta vadeli bir şablon koydum - kod aşağıdadır.

 string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl" ; //ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА
void OnStart ()
 {
   long prevChart = ChartFirst ();
   while (prevChart >= 0 )
   {
     if ( ChartPeriod (prevChart) != PERIOD_D1 ) // ЕСЛИ ПЕРИОД ГРАФИКА НЕ Д1
       ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), PERIOD_D1 ); // УСТАНАВЛИВАЕМ ПЕРИОД ГРАФИКА КАК Д1
       ChartApplyTemplate (prevChart, tplName); // И УСТАНАВЛИВАЕМ НА ГРАФИК ШАБЛОН СРЕДНЕСРОКА
    prevChart = ChartNext (prevChart);
   }
 } /******************************************************************/
/*****************************End program****************************/


Orta vadeli şablon, komut dosyasının atıldığı en soldaki grafik dışında tüm grafiklerde değişti.

Sonra, en soldaki çizelgeye çizelgeleri h1'e dönüştürmek için bir komut dosyası ve bir ölçekleme şablonu koyuyorum. Aşağıdaki komut dosyası kodu

+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
string tplName = "FIBOmAGIC СКАЛЬПИНГ.tpl" ;
void OnStart ()
 {
   long prevChart = ChartFirst ();
   while (prevChart >= 0 && IsStopped ())
   {
     if ( ChartPeriod (prevChart) != PERIOD_H1 )
       ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), PERIOD_H1 );
       ChartApplyTemplate (prevChart, tplName);
    prevChart = ChartNext (prevChart);
   }
 } /******************************************************************/
/*****************************End program****************************/

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+


Her şey açık görünüyor - ölçekleme şablonu tüm grafiklere uygulanıyor. Ama bir şey var . eğer birini iki kez atarsan   ve aynı komut dosyası en soldaki grafikte, ardından 8 grafikten 5'i aud / usd aracı olur.

AYNI YAZIYIN İKİ UYGULAMASINDAN SONRA, ÇİZELGELERİN BİR KISMI TEK ARAÇ HALİNE GELİYOR

Bu neden olur ve 2 kez bir komut dosyası atmamak dışında nasıl önlenir?

 
DanilaMactep # :

Merhaba. İstenen şablonu tüm çizelgelere yüklemek için komut dosyasına göre, hikaye budur.

Aşağıdaki ölçekleme ekranı şablonuyla tf n1'de hepsi farklı olan 8 grafik açıyorum.

En soldaki grafiğe ( AUD / USD ) tüm çizelgeleri d1'e aktarmak için bir komut dosyası ve orta vadeli bir şablon koydum - kod aşağıdadır.


Orta vadeli şablon, komut dosyasının atıldığı en soldaki grafik dışında tüm grafiklerde değişti.

Sonra, en soldaki çizelgeye çizelgeleri h1'e dönüştürmek için bir komut dosyası ve bir ölçekleme şablonu koyuyorum. Aşağıdaki komut dosyası kodu


Her şey açık görünüyor - ölçekleme şablonu tüm grafiklere uygulanıyor. Ama bir şey var . eğer birini iki kez atarsan   ve aynı komut dosyası en soldaki grafikte, ardından 8 grafikten 5'i aud / usd aracı olur.

Bu neden olur ve 2 kez bir komut dosyası atmamak dışında nasıl önlenir?

böyle dene

 void OnStart ()
 {
   long prevChart = ChartFirst ();
   while (prevChart >= 0 && IsStopped ())
   {
     //if(ChartPeriod(prevChart) != PERIOD_H1)
       ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), PERIOD_H1 ); // или PERIOD_D1
       ChartApplyTemplate (prevChart, tplName);
    prevChart = ChartNext (prevChart);
   }
 } /******************************************************************/
/*****************************End program****************************/
 
Alexey Viktorov # :

böyle dene

bu seçenek hiçbir şey yapmıyor - Komut dosyasını grafikte yayınlıyorum ve hiçbir şey olmuyor.
 
DanilaMactep # :
bu seçenek hiçbir şey yapmıyor - Komut dosyasını grafikte yayınlıyorum ve hiçbir şey olmuyor.

Ve değişken bildirimi

 string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl" ; //ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА

tesadüfen silindi mi?

 
Alexey Viktorov # :

Ve değişken bildirimi

tesadüfen silindi mi?

Derleyici onu kaldırırsa, bunun tanımlanamayan bir değişken olduğunu haykırırdı. Ama şimdi tekrar deneyeceğim...
 
Alexey Viktorov # :

Ve değişken bildirimi

tesadüfen silindi mi?

tekrar kontrol edildi. değişken kaldırılmadı. Sürümünüzü koyuyorum. Derliyorum ve komut dosyası hiçbir şey yapmıyor.
 
DanilaMactep # :
bu seçenek hiçbir şey yapmıyor - Komut dosyasını grafikte yayınlıyorum ve hiçbir şey olmuyor.

bu senin için çalışmıyor mu?

 //+------------------------------------------------------------------+
//|                                           ChartApplyTemplate.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//----
sinput string Template           = "ADX" ;           // Имя шаблона(without '.tpl')
sinput ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT ; // Период
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   long currChart, prevChart = ChartFirst ();
   int i = 0 , limit = 100 ;
   bool errTemplate;
   while (i < limit)
     {
      currChart = ChartNext (prevChart);
       if (TimeFrame != PERIOD_CURRENT )
        {
         ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), TimeFrame);
        }
      errTemplate = ChartApplyTemplate (prevChart, Template + ".tpl" );
       if (!errTemplate)
        {
         Print ( "Error " , ChartSymbol (prevChart), "-> " , GetLastError ());
        }
       if (currChart < 0 )
         break ;
       Print (i, ChartSymbol (currChart), " ID =" , currChart);
      prevChart = currChart;
      i++;
     }
  }
//+------------------------------------------------------------------+
 
137 Matrix # :

bu senin için çalışmıyor mu?

yanılmıyorsam her şey bu kodla başladı - hatırladığım kadarıyla işe yaramadı ;-) Ve kodda şablon adını nereye yapıştıracağımı bulamadım. Genel olarak, bir çeşit kalay çıkıyor ...