Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1706

 
EVGENII SHELIPOV #:

Makar algo está errado. Adorei, obrigado. Eu mesmo encontrei uma opção não tão pretensiosa, mas ela funciona.

Mostre-me onde GetAveragePriceManMaxOrders() é chamado.
 

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, ainda não tenho nada sério pendurado nesta função. Acabo de fazer uma referência à visualização de objetos. Esta função é para o futuro, por assim dizer.

 
EVGENII SHELIPOV #:

Makar, ainda não tenho nada sério pendurado nesta função. Acabo de fazer uma referência à visualização de objetos. Esta função é, por assim dizer, para o futuro.

Excluir

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 tudo deve funcionar

 

Boa tarde a todos. Tenho tal tarefa no mt4. Inicialmente, no início do dia abro 30 gráficos de símbolos diferentes com modelo a médio prazo, e em todos os gráficos anexei indicador e EA com seus parâmetros. Em seguida, analiso os gráficos e, naquele com um sinal, passo de D1 para n1 e, se houver um sinal em n1, o Expert Advisor abre posições e as apóia. No final do dia acontece que uma parte do gráfico está na d1, e outra parte está na n1. No início do dia seguinte, preciso novamente que todos os gráficos estejam em d1 com indicador e EA que salvaram seus parâmetros. Eu tentei salvar um perfil no momento em que todos os gráficos estão em d1. Eu carrego o perfil, mas os gráficos que foram mudados para n1 ainda permanecem neste período de tempo. Existe uma solução pronta para trocar todas as cartas abertas no terminal de forma fácil e rápida para d1, salvando todas as minhas configurações? Um roteiro, um Expert Advisor ou algo mais?

E a segunda pergunta - se eu tiver 30 gráficos abertos e eu estiver do lado direito da barra inferior onde estão todos os gráficos, posso mudar para o gráfico correto com um clique em vez de paginar através de um gráfico?


o gráfico mais à direita de 30. a seta à direita rola 1 de cada vez - como eu vou para o mais à direita?

 
DanilaMactep #:

Boa tarde a todos. Tenho tal tarefa no mt4. Inicialmente, no início do dia abro 30 gráficos de símbolos diferentes com modelo a médio prazo, e em todos os gráficos anexei indicador e EA com seus parâmetros. Em seguida, analiso os gráficos e, naquele com um sinal, passo de D1 para n1 e, se houver um sinal em n1, o Expert Advisor abre posições e as apóia. No final do dia acontece que uma parte do gráfico está na d1, e outra parte está na n1. No início do dia seguinte, preciso novamente que todos os gráficos estejam em d1 com indicador e EA que salvaram seus parâmetros. Eu tentei salvar um perfil no momento em que todos os gráficos estão em d1. Eu carrego o perfil, mas os gráficos que foram mudados para n1 ainda permanecem neste período de tempo. Existe uma solução pronta para trocar todas as cartas abertas no terminal de forma fácil e rápida para d1, salvando todas as minhas configurações? Um roteiro, um Expert Advisor ou algo mais?

E a segunda pergunta - se eu tiver 30 gráficos abertos e eu estiver à direita na barra inferior onde estão todos os gráficos, posso mudar para o gráfico correto com um toque, em vez de paginar através de um gráfico.

Aqui está um roteiro para ajudar com esta pergunta:

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

Na segunda pergunta, a combinação chave ctrl+tab ou ctrl+shift+tab ajudará

ou escreva um roteiro com uma linha de código

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

Aqui está um roteiro para ajudar com esta pergunta:

Na segunda pergunta, o atalho de teclado ctrl+tab ou ctrl+shift+tab ajudará

ou escreva um roteiro com uma linha de código

Obrigado pelo código - vou adicioná-lo ao roteiro, espero que funcione e nem sequer exploda :-) ;-)
 
Alexey Viktorov #:

Aqui está um roteiro para ajudar com esta pergunta:

Na segunda pergunta, o atalho de teclado ctrl+tab ou ctrl+shift+tab ajudará

ou escreva um roteiro com uma linha de código

Tudo funcionou perfeitamente - muito obrigado - agora vou economizar muito tempo e esforço P/S enquanto não estourei nada e também para a transferência para a n1 retrabalhada)))))))

 
Bom dia! Gostaria de perguntar aos usuários experientes, existe um indicador muito simples, o código está anexado abaixo, quero mudar para o terminal Metatrader5 e o indicador atual escrito em mql4 não se encaixa, existem princípios básicos de como reescrever o indicador, ou talvez convertê-lo
//+--где индикатор если 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);
  }
 

Olá!

Eu gostaria de ouvir os programadores que dão conselhos sobre a MQL5 por uma taxa!

Ou talvez alguém lhe dê um conselho! Eu ficaria grato!

 
Peperoni #:

Olá!

Eu gostaria de ouvir de qualquer programador que dê conselhos por uma taxa!

Ou talvez alguém venha a recomendar alguém. Eu ficaria grato!

Seja freelance ou faça sua pergunta aqui.

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