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

 
Roman Sharanov:

nada, vazio

Pergunteaqui.

 
Artyom Trishkin:

Pergunteaqui.

Se ajudar, deve desenhar flechas, sobre o euro, sobre o euro-iena, o aussie, sobre os outros não

Arquivos anexados:
Hydra.mq4  9 kb
 
Roman Sharanov:

Se ajudar, deve desenhar flechas, sobre o euro, sobre o euro-iena, o aussie, sobre outros não

Apenas um palpite.

Existe tal valor nas configurações:

input int so_slowma = 233;//Медленная МА

E depois no OnInit():

   //---- установка номера бара, начиная с которого будет отрисовываться индикатор 
   SetIndexDrawBegin(0,so_slowma);
   SetIndexDrawBegin(1,so_slowma);

Vejo que os dados diários das barras são usados para o cálculo:

if(so > so_minsize && fto > fto_minsize && fo[1] < 0 && fo[0] > 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_1[i+1] = Low[i+1] - 10 * Point;  
if(so < -so_minsize && fto < -fto_minsize && fo[1] > 0 && fo[0] < 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_2[i+1] = High[i+1] + 10 * Point; 

Você tem certeza de que há barras suficientes nos símbolos onde não há desenho? Coloque um valor menor na variável so_slowma - pelo menos 100. Se houver renderização, então você não terá dados históricos suficientes.

É apenas uma suposição que me veio à mente na primeira vez que olhei para o código. E pode estar errado. Mas é preciso verificá-lo primeiro.

 

Como posso fazer um retângulo https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_rectangle ser desenhado em cima de outro retângulo sem misturar suas cores?

Aqui, por exemplo, uma linha horizontal posterior é desenhada em cima de uma linha horizontal anterior sem misturar suas cores, mas não vejo o que causa a diferença dos retângulos.

Obrigado.

OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Следующий скрипт создает и перемещает на графике прямоугольник. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах. //| Cоздает прямоугольник по заданным координатам                    |               time1=0,           ...
 
Artyom Trishkin:

Apenas um palpite.

Existe tal valor nas configurações:

e depois no OnInit():

Vejo que os dados diários das barras são usados para o cálculo:

Você tem certeza de que há barras suficientes em símbolos onde não há renderização? Coloque um valor menor na variável so_slowma - pelo menos 100. Se houver renderização, então você não terá dados históricos suficientes.

É apenas uma suposição que me veio à mente na primeira vez que olhei para o código. E pode estar errado. Mas é preciso verificar antes de mais nada.

Ou seja, porque retiro dados de um gráfico diário em algum lugar do código, o indicador não tirará os primeiros 233 dias?
 
Roman Sharanov:
Isto é, porque eu tiro dados dos dados diários uma vez no código, o indicador não vai tirar os primeiros 233 dias?

Não, não é. Este valor indica de qual número de barra o indicador começará a desenhar no gráfico. Mas este número de barras é usado para calcular a média móvel. Se houver menos barras no gráfico, o MA não será calculado. A fim de evitar esta situação, na linha 73, o código contém o retorno da OnCalculate() em caso de ausência de barras para cálculo:

if (Bars <= so_slowma) return (0);

Bem, sobre os dados diários - pode não estar presente, mas é mais como "continuação da história"...

 
Artyom Trishkin:

Não, não é. Este valor indica de qual número de barra o indicador começará a desenhar no gráfico. Mas este número de barras é usado para calcular a média móvel. Se houver menos barras no gráfico, o MA não será calculado. Para evitar esta situação, no código, na linha 73, escrevemos retorno da OnCalculate() em caso de ausência de barras para cálculo:

Bem, sobre os dados diários - pode não estar lá também, mas é mais como "continuação da história"...

A libra, por exemplo, tem mais de 1000 barras por dia e por m15, mas não saca...

 
Roman Sharanov:

Bem, a libra, por exemplo, tanto no diário como no m15 tem mais de 1000 barras, mas não saca...

Você tem o código fonte. Imprima os valores de todas as variáveis no log e veja o que elas recebem.

 
Artyom Trishkin:

Você tem o código fonte. Imprima os valores de todas as variáveis no log e veja o que elas recebem.

De onde isto vem?


 
Roman Sharanov:

De onde isso vem?


Lixo nos amortecedores. Primeiro é preciso inserir um valor em branco em todos os amortecedores a serem desenhados (se forem amortecedores de flechas), e só então efetuar o cálculo do indicador. Eu não consigo ver o código do meu celular, então não posso dizer exatamente.
Razão: