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

 
EVGENII SHELIPOV # :

Makar, bir sorun var. Teşekkürler seviyoruz. Kendim pek güzel bir seçenek bulamadım ama işe yarıyor

GetAveragePriceManMaxOrders() çağrısının nereye gittiğini göster
 

MakarFX # :
Покажи где идет обращение к GetAveragePriceManMaxOrders()

 ObjectCreate ( 0 , "AveragePriceLineMinMaxOrders0" , OBJ_HLINE , 0 , 0 , GetAveragePriceManMaxOrders( 0 ));
   ObjectSet( "AveragePriceLineMinMaxOrders0" , OBJPROP_COLOR , clrLime );
   ObjectSet( "AveragePriceLineMinMaxOrders0" , OBJPROP_STYLE , STYLE_DASH );
   ObjectCreate ( 0 , "AveragePriceLineMinMaxOrders1" , OBJ_HLINE , 0 , 0 , GetAveragePriceManMaxOrders( 1 ));
   ObjectSet( "AveragePriceLineMinMaxOrders1" , OBJPROP_COLOR , clrRed );
   ObjectSet( "AveragePriceLineMinMaxOrders1" , OBJPROP_STYLE , STYLE_DASH );

Makar, bu işlevde henüz ciddi bir şeyim yok. Bu sadece nesnelerin görselleştirilmesi için bir çağrı yaptı. Bu özellik geleceğe yöneliktir.

 
EVGENII SHELIPOV # :

Makar, bu işlevde henüz ciddi bir şeyim yok. Bu sadece nesnelerin görselleştirilmesi için bir çağrı yaptı. Bu özellik geleceğe yöneliktir.

Kaldırmak

 ObjectCreate ( 0 , "AveragePriceLineMinMaxOrders0" , OBJ_HLINE , 0 , 0 , GetAveragePriceManMaxOrders( 0 ));
   ObjectSet( "AveragePriceLineMinMaxOrders0" , OBJPROP_COLOR , clrLime );
   ObjectSet( "AveragePriceLineMinMaxOrders0" , OBJPROP_STYLE , STYLE_DASH );
   ObjectCreate ( 0 , "AveragePriceLineMinMaxOrders1" , OBJ_HLINE , 0 , 0 , GetAveragePriceManMaxOrders( 1 ));
   ObjectSet( "AveragePriceLineMinMaxOrders1" , OBJPROP_COLOR , clrRed );
   ObjectSet( "AveragePriceLineMinMaxOrders1" , OBJPROP_STYLE , STYLE_DASH );

ve her şey çalışmalı

 

Herkese iyi günler. MT4'te böyle bir görevim var. İlk olarak, günün başında, orta vadeli bir şablona sahip 30 farklı enstrüman grafiği açılırken, tüm çizelgelere kendi parametreleriyle bir gösterge ve bir danışman atılacaktır. Sonra çizelgeleri analiz ediyorum ve sinyalin olduğu yere gidiyorum.   d1'den n1'e kadar ve n1'de bir sinyal varsa, danışman tarafından pozisyonlar açılır ve onlara eşlik eder. Günün sonunda, grafiklerin bir kısmının d1'de, diğer kısmının n1'de kaldığı ortaya çıktı. Ve ertesi günün başında, parametrelerinin kaydedildiği bir gösterge ve bir danışman ile tekrar tüm çizelgelerin d1'de olmasına ihtiyacım var. Tüm grafikler d1'deyken profili kaydetmeye çalıştım. Bu profili yüklüyorum, ancak h1'e geçiş yapan grafikler bu TF'de kalıyor. Grafiğe konan ve yapılandırılan her şeyi kaydederken terminaldeki tüm açık çizelgeleri basit ve hızlı bir şekilde d1'e geçirmek için hazır bir çözüm var mı? Senaryo, danışman veya başka bir şey?

Ve ikinci soru - 30 çizelge açıksa ve tüm çizelgelerin bulunduğu alt bantta en sağda duruyorsam, tek bir çizelgeyi kaydırmadan, tek tıklamayla en sağdaki çizelgeye geçebilir miyim?


30 grafikten en sağdaki. 1 ile sağa kaydır - tek tıkla en sağdakine nasıl gidilir?

 
DanilaMactep # :

Herkese iyi günler. MT4'te böyle bir görevim var. İlk olarak, günün başında, orta vadeli bir şablona sahip 30 farklı enstrüman grafiği açılırken, tüm çizelgelere kendi parametreleriyle bir gösterge ve bir danışman atılacaktır. Sonra çizelgeleri analiz ediyorum ve sinyalin olduğu yere gidiyorum.   d1'den n1'e kadar ve n1'de bir sinyal varsa danışman tarafından pozisyonlar açılır ve onlara eşlik eder. Günün sonunda, grafiklerin bir kısmının d1'de, diğer kısmının n1'de kaldığı ortaya çıktı. Ve ertesi günün başında, parametrelerinin kaydedildiği bir gösterge ve bir danışman ile tekrar tüm çizelgelerin d1'de olmasına ihtiyacım var. Tüm grafikler d1'deyken profili kaydetmeye çalıştım. Bu profili yüklüyorum, ancak h1'e geçiş yapan grafikler bu TF'de kalıyor. Grafiğe konan ve yapılandırılan her şeyi kaydederken terminaldeki tüm açık çizelgeleri basit ve hızlı bir şekilde d1'e geçirmek için hazır bir çözüm var mı? Senaryo, danışman veya başka bir şey?

İkinci soru ise, 30 tablo açıksa ve tüm çizelgelerin bulunduğu alt bantta en sağda duruyorsam, tek bir çizelgede gezinmeden, tek tıkla en sağdaki tabloya geçebilir miyim?

İşte bu soruna yardımcı olacak bir komut dosyası:

 /********************************************************************\
|                                                           Test.mq5 |
|                                            © 2021, Alexey Viktorov |
|                       https://www.mql5.com/ru/users/alexeyvik/news |
\********************************************************************/
#property copyright "Viktorov"
#property link        " https://www.mql5.com/ru/users/alexeyvik/news "
#property version    "1.00"
#property strict

/********************Script program start function*******************/
void OnStart ()
 {
   long prevChart = ChartFirst ();
   while (prevChart >= 0 )
   {
     if ( ChartPeriod (prevChart) != PERIOD_D1 )
       ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), PERIOD_D1 );
    prevChart = ChartNext (prevChart);
   }
 } /******************************************************************/
/*****************************End program****************************/

İkinci soruda ctrl + tab veya ctrl + shift + tab klavye kısayolu yardımcı olacaktır.

veya bir satır kod içeren bir komut dosyası yazın

 ChartSetInteger ( ChartFirst (), CHART_BRING_TO_TOP , 0 , true )
 
Alexey Viktorov # :

İşte bu konuda yardımcı olacak bir komut dosyası:

İkinci soruda ctrl + tab veya ctrl + shift + tab klavye kısayolu yardımcı olacaktır.

veya bir satır kod içeren bir komut dosyası yazın

kod için teşekkür ederim - Senaryoya sokacağım, umarım çalışır ve hatta patlama olmadan idare eder :-) ;-)
 
Alexey Viktorov # :

İşte bu soruna yardımcı olacak bir komut dosyası:

İkinci soruda ctrl + tab veya ctrl + shift + tab klavye kısayolu yardımcı olacaktır.

veya bir satır kod içeren bir komut dosyası yazın

Her şey harika oldu - çok teşekkür ederim - şimdi çok zaman ve emekten tasarruf edeceğim

 
Tünaydın! Tecrübeli kullanıcılarla netleştirmek istedim çok basit bir gösterge var aşağıdaki kodu ekliyorum Metatrader5 terminaline gitmek istiyorum ve mql4 ile yazılmış mevcut gösterge uymuyor, nasıl yeniden yazılır tetikleyicilerin temel prensipleri var mı gösterge veya bir şekilde dönüştürülebilir mi?
 //+--где индикатор если indicator_chart_window то на график у нас в отдельном окне
#property indicator_separate_window
//+--уровни это сколько масивов Buf0[],Buf1[],Buf2[]; у нас каждый масив это линия
#property indicator_buffers 3
//+--сколько линий и какого цвета
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Blue 
//+-- ширина линии
#property indicator_width1    2
#property indicator_width2    3
#property indicator_width3    3
//+--уровни
#property indicator_level1 30 //+--уровень 1
#property indicator_level2 50 //+--уровень 2
#property indicator_levelstyle 2 //+--тип линии уровня 2 - это пунктир
#property indicator_levelcolor Black //+-- цвет линии уровня
//+-- то что будет в окне "входные параметры"                                         
extern int RSIPERIOD= 5 ;
extern double KOEFF1= 1.4 ;
extern double KOEFF2= 2 ; 
//+-- описываем какие у нас массивы (их три) и перменные (в даном случае параметры РСАЙ (D10,D11,D12;) это переменная                                                                                                                                                       
double Buf0[],Buf1[],Buf2[];
double D10,D11,D12;
//+-- Блок init ПРЕДПОЛОДЖИТЕЛЬНО описательный                                                                                                                                                                                                                                                                                                                                      
int init()
  {
   IndicatorDigits( 0 ); //+--формат точности (количество знаков после десятичной точки) для визуализации значений индикатора в окне индикатора (цифры rsi 7 или 7,23)
   string short_name= "KAVRSI" ;   //+-- задаем 2 строчками короткое имя        
   IndicatorShortName( "KAVRSI" ); //+-- задаем 2 строчками короткое имя
   
   D10=RSIPERIOD;D11=D10*KOEFF1;D12=D11*KOEFF2;; //+--тут мы высчитываем переменные которые описали как масивы выше
 
   SetIndexBuffer ( 0 ,Buf0); //+-- описываем 1 массив Buf0[] первый это нулевой второй это первый и т.д.
   SetIndexStyle ( 0 , DRAW_LINE ); //+-- говорим что этот масив хотим представить в виде линии 0 это порядковый номер линии соответствует номеру масива 
   SetIndexBuffer ( 1 ,Buf1); //+-- описываем 2 массив Buf1[]
   SetIndexStyle ( 1 , DRAW_LINE ); //+-- 1 это порядковый номер линии соответствует номеру масива Buf1[]
   SetIndexBuffer ( 2 ,Buf2);
   SetIndexStyle ( 2 , DRAW_LINE );
   return ( 0 );
  }
//+-- Блок start сама математика и ОТРИСОВКА                                                                                                             
int start()
  {
   if ( Bars <=RSIPERIOD) return ( 0 ); //+-- начинаем задавать условия если количество баров меньше расчета (баров 9 а мы считаем по 14) то выдаем 0
   int ExtCountedBars=IndicatorCounted(); //+--Возвращает количество баров, не измененных после последнего вызова индикатора.
   //---- последний посчитанный бар будет пересчитан
   if (ExtCountedBars> 0 ) ExtCountedBars--;
   if (ExtCountedBars< 0 ) return (- 1 );
   //+-- for(int для int это переменна в нашем случае видимо int ExtCountedBars=IndicatorCounted()
   //+-- и тут мы задаем параметр i - его свойства и описание на основе пересчитаных баров 
   //+-- в нашем случае НЕТ НЕ ПЕРЕСЧИТАННЫХ - считаеться и последний! 
   for ( int i= 0 ;i< Bars -RSIPERIOD;i++)
      {
       Buf0[i] = iRSI ( NULL , 0 ,D10, 0 ,i); //+-- говорим что 1 массив это рсай с параметром D10
//+-- Пишем в коде что бы ВМЕСТО красной и синей линией RSI2 и RSI3 была одна линия - 
//+-- чтобы вместо красной и синей была одна - мы получаем среднее значение этих линий, т.е.     
       Buf1[i] = ( iRSI ( NULL , 0 ,D11, 0 ,i)+ iRSI ( NULL , 0 ,D12, 0 ,i))/ 2 ; //+-- и у этой линии, по умолчанию, красный цвет  
//+-- когда выполняется условие
       if ( iRSI ( NULL , 0 ,D11, 0 ,i)> iRSI ( NULL , 0 ,D12, 0 ,i))
//+-- то мы не меняем цвет линии, т.к. в МТ4 это нельзя сделать,
//+-- а берем и накладываем сверху другую линию с другим цветом      
       Buf2[i] = Buf1[i]; 
       else
       Buf2[i] = EMPTY_VALUE ; //+-- добавляем else Buf2[i] = EMPTY_VALUE; EMPTY_VALUE - Пустое значение в индикаторном буфере 
      }
   return ( 0 );
  }
 

Merhaba!

MQL5 hakkında ücretli danışmanlık veren programcılardan yanıt vermelerini rica ediyorum!

Ya da belki birisi tavsiyede bulunabilir. Minnettar olacağım!

 
Peperoni # :

Merhaba!

Ücretli danışmanlık veren programcılardan yanıt vermelerini rica ediyorum!

Ya da belki birisi tavsiyede bulunabilir. Minnettar olacağım!

İster serbest çalışın, ister sorunuzu buradan sorun.

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.11.02
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5
Neden: