Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1706

 
EVGENII SHELIPOV #:

Makar c'è qualcosa che non va. Lo adoro, grazie. Io stesso ho trovato un'opzione non molto carina, ma funziona.

Mostrami dove viene chiamato GetAveragePriceManMaxOrders().
 

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 Non ho ancora nulla di serio appeso a questa funzione. Ho appena fatto un riferimento per visualizzare gli oggetti. Questa funzione è per il futuro, per così dire.

 
EVGENII SHELIPOV #:

Makar Non ho ancora nulla di serio appeso a questa funzione. Ho appena fatto un riferimento per visualizzare gli oggetti. Questa funzione è per così dire per il futuro.

Cancellare

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);

e tutto dovrebbe funzionare

 

Buon pomeriggio a tutti. Ho un compito simile in mt4. Inizialmente, all'inizio della giornata apro 30 grafici di diversi simboli con modello a medio termine, e su tutti i grafici ho attaccato indicatore e EA con i suoi parametri. Poi analizzo i grafici e su quello con un segnale mi sposto da D1 a n1 e se c'è un segnale su n1, l'Expert Advisor apre le posizioni e le sostiene. Alla fine si scopre che una parte del grafico è sul d1, e un'altra parte è sul n1. All'inizio del giorno successivo, ho di nuovo bisogno che tutti i grafici siano su d1 con indicatore e EA che hanno salvato i loro parametri. Ho provato a salvare un profilo nel momento in cui tutti i grafici sono su d1. Ho caricato il profilo, ma i grafici che sono stati passati a n1 rimangono ancora su questo timeframe. C'è una soluzione pronta per passare facilmente e rapidamente tutti i grafici aperti nel terminale a d1, salvando tutte le mie impostazioni? Uno script, un Expert Advisor o qualcos'altro?

E la seconda domanda - se ho 30 grafici aperti e mi trovo sul lato destro della barra inferiore dove ci sono tutti i grafici, posso passare al grafico giusto con un clic invece di sfogliare un grafico?


il grafico più a destra su 30. la freccia destra scorre 1 alla volta - come faccio ad andare a quello più a destra?

 
DanilaMactep #:

Buon pomeriggio a tutti. Ho un compito simile in mt4. Inizialmente, all'inizio della giornata apro 30 grafici di diversi simboli con modello a medio termine, e su tutti i grafici ho attaccato indicatore e EA con i suoi parametri. Poi analizzo i grafici e su quello con un segnale mi sposto da D1 a n1 e se c'è un segnale su n1, l'Expert Advisor apre le posizioni e le sostiene. Alla fine si scopre che una parte del grafico è sul d1, e un'altra parte è sul n1. All'inizio del giorno successivo, ho di nuovo bisogno che tutti i grafici siano su d1 con indicatore e EA che hanno salvato i loro parametri. Ho provato a salvare un profilo nel momento in cui tutti i grafici sono su d1. Ho caricato il profilo, ma i grafici che sono stati passati a n1 rimangono ancora su questo timeframe. C'è una soluzione pronta per passare facilmente e rapidamente tutti i grafici aperti nel terminale a d1, salvando tutte le mie impostazioni? Uno script, un Expert Advisor o qualcos'altro?

E la seconda domanda - se ho 30 grafici aperti e sto sulla destra nella barra inferiore dove ci sono tutti i grafici, posso passare al grafico giusto con un tocco invece di sfogliare un grafico.

Ecco uno script per aiutare con questa domanda:

/********************************************************************\
|                                                           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****************************/

Nella seconda domanda, la combinazione di tasti ctrl+tab o ctrl+shift+tab aiuterà

o scrivere uno script con una linea di codice

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

Ecco uno script per aiutare con questa domanda:

Nella seconda domanda, la scorciatoia da tastiera ctrl+tab o ctrl+shift+tab aiuterà

o scrivere uno script con una linea di codice

Grazie per il codice - lo aggiungerò allo script, spero che funzioni e che non esploda :-) ;-)
 
Alexey Viktorov #:

Ecco uno script per aiutare con questa domanda:

Nella seconda domanda, la scorciatoia da tastiera ctrl+tab o ctrl+shift+tab aiuterà

o scrivere uno script con una linea di codice

Tutto ha funzionato perfettamente - grazie mille - ora risparmierò un sacco di tempo e fatica P/S mentre non si avvita nulla scoppia e anche per il trasferimento al n1 rielaborato)))))))

 
Vorrei chiedere agli utenti esperti, c'è un indicatore molto semplice, il codice è allegato qui sotto, voglio passare al terminale Metatrader5 e l'attuale indicatore scritto in mql4 non funziona, ci sono dei principi base di trigger come riscrivere l'indicatore, o magari convertirlo
//+--где индикатор если 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);
  }
 

Ciao!

Mi piacerebbe sentire i programmatori che danno consigli su MQL5 a pagamento!

O forse qualcuno ti darà un consiglio! Te ne sarei grato!

 
Peperoni #:

Ciao!

Mi piacerebbe sentire qualsiasi programmatore che dia consigli a pagamento!

O forse qualcuno raccomanderà qualcuno. Te ne sarei grato!

O come freelance o fai la tua domanda qui.

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