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

 
Igor Makanu:

você não pode executar algo longo no OnInit - o terminal pode descarregar o código

no indicador não deve escorregar

Sim, eu sou burro... Talvez, em vez de um loop infinito no OnInit, volte da OnCalculate com a mesma condição? - deve haver um número definido quando não há login, seja -1, ou 0, ou EMPTY_VALUE

 

Cumprimentem os comerciantes e programadores!

Você poderia me dizer se é possível usar um método não padrão para calcular o período para o MA(Moving Average) ? Quero dizer que a posição do MA na barra atual (zero) não será determinada pelas últimas 20 (por exemplo) barras, mas a cada 5m das últimas 100, ou apenas especificando o número de barras na história, a partir da barra atual. E, se houver tal possibilidade, é possível especificar a função diretamente no código indicador?

Obrigado pela informação.

 

Olá. Como exibir o símbolo do triângulo para baixo e para cima?

Aqui está o código

bool OutText(const string name="Label",

const string text="Label", // texto

const int x=0, // coordenada X

const int y=0, // coordenada ao longo do eixo Y

const color clr=clrYellow, // cor

const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // método de ancoragem

const ENUM_BASE_CORNER canto=CORNER_LEFT_UPPER, // canto do gráfico para âncora

const int font_size=12, // tamanho da fonte

const string font="Arial", // font

const duplo ângulo=0,0, // inclinação do texto

const bool back=false, // back

const bool selection=false, //select for moving

const bool hidden=true, // escondido na lista de objetos

const long z_ordem=0,

const int sub_janela=0, // número de subjanela

const long chart_ID=0 // ID do gráfico

) // clicar prioridade

{

//--- reajuste o valor do erro

ResetLastError();

//--- criar uma marca de texto

if(ObjectFind(chart_ID,name)==-1)

{

if(!ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))

{

Imprimir(__FUNÇÃO__, ": falhou na criação do rótulo de texto! Código de erro = ",GetLastError()));

// retorno(falso);

}

}

//--- definir as coordenadas do marcador

ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);

ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);

//--- definir o ângulo do gráfico, em relação ao qual as coordenadas do ponto serão determinadas

ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);

//... -- definir o texto

ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);

//--- definir fonte de texto

ObjectSetString(chart_ID,name,OBJPROP_FONT,font);

//... - estabelecer o tamanho da fonte

ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);

//--- definir ângulo de inclinação do texto

ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);

//... -- fixar o método de ancoragem

ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);

//... - cor definida

ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);

//--- exibição em primeiro plano (falso) ou em segundo plano (verdadeiro)

ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);

//--- ligar (verdadeiro) ou desligar (falso) o modo de mover a marca com o mouse

ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);

ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);

//--- ocultar (verdadeiro) ou exibir (falso) o nome do objeto gráfico na lista de objetos

ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);

//--- definir o evento do clique do mouse prioridade do recebimento

ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);

//--- execução bem sucedida

retorno(true);

}

Como faço para levantar o símbolo do triângulo?

O que deve ser escrito

OutText("LabelBuy1", ">", 100, 20, clrWhite, ANCHOR_UPPER,CORNER_LEFT_UPPER,14, "Arial");

Para fazer um triângulo?

1



Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
 

Antes eu fiz uma pergunta sobre como simular a função Print() do lado da biblioteca para verificar os dados que chegam às funções da biblioteca e para procurar por erros, fui aconselhado a usar recursos C++: ou seja, para escrever informações no arquivo a partir do lado dll da biblioteca. Em geral a biblioteca não pode criar um arquivo para escrever as informações lá, o arquivo não é criado nem no projeto de diretório, nem na pasta com o robô, tentou especificar o caminho padrão não funciona, a saída de informações via cout também não funciona, mas provavelmente não pode porque não é uma aplicação de console. Quem pode aconselhar?

#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <fstream>//подключаю библиотеку для записи в файл

/*using std::cout;
using std::endl;
using std::cin;*/

using namespace std;

#define _DLLAPI extern "C" __declspec(dllexport)

_DLLAPI int __stdcall Funkt(int qa){//"C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt"
        ofstream file;//"C:\\Users\\123\\Documents\\Visual Studio 2012\\Projects\\ConsoleApplication8\\ConsoleApplication8\\Moyperviyzapisfiles.txt"
        //"C:\\Users\\123\\documents\\visual studio 2012\\Projects\\ConsoleApplication8\\Debug\\ConsoleApplication8.dll\\Moyperviyzapisfiles.txt"
        file.open("C:\\Program Files(x86)\\Forex4you\\MQL4\\Experts\\Moyperviyzapisfiles.txt"/*,ios::out*/);//Moy perviy zapis files
        file<<"Moyperviyzapisfiles";//хочу записать эту фразу в файл
        file.close();   
        return 12;}
//если это делать не в библиотеке то работает.
 

Como substituir a figura padrão na descrição por ...


... posso colocar a minha própria?


 
Alexandr Sokolov:

Como substituir a figura padrão na descrição por ...


... posso colocar a minha própria?


# ícone de propriedade
 
Artyom Trishkin:
# ícone de propriedade

Como é simples... Obrigado!

 

Olá!

Você poderia me dizer como implementar a detecção de objetos gráficos desenhados manualmente em um gráfico (horizontal ou linha de tendência, por exemplo) e depois recuperar suas propriedades (nível de preço no momento certo)?

 
odyn:

Olá!

Você poderia me dizer como implementar a detecção de objetos gráficos desenhados manualmente em um gráfico (horizontal ou linha de tendência, por exemplo) e depois recuperar suas propriedades (nível de preço no momento certo)?

Se o número de objetos no gráfico tiver aumentado, então...
 
odyn:

Olá!

Você poderia me dizer como implementar a detecção de objetos gráficos desenhados manualmente em um gráfico (horizontal ou linha de tendência, por exemplo) e depois recuperar suas propriedades (nível de preço no momento certo)?

Eles têm um prefixo padronizado, por exemplo: número Trenler. Você pode pesquisar da seguinte forma: no loop if(StringFind(ObjectName(0,i), "Trendline")==0) para os antigos ou para os novos if(StringFind(sparam, "Trendline")==0))