Também retirei o código do botão a partir dos exemplos, .... Como fazer pressão no botão não fixo, ou seja, após a sua função ser executada, volta ao seu estado inicial.
No que diz respeito aos botões, aqui está um exemplo da ajuda:
//+------------------------------------------------------------------+//| ControlsButton.mq5 |//| Copyright 2015, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"http://www.mql5.com"#property version"1.00"#property description"Панель индикации и диалогов управления. Демонстрация работы класса CButton"#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
//+------------------------------------------------------------------+//| defines |//+------------------------------------------------------------------+//--- indents and gaps#define INDENT_LEFT (11) // indent from left (with allowance for border width)#define INDENT_TOP (11) // indent from top (with allowance for border width)#define INDENT_RIGHT (11) // indent from right (with allowance for border width)#define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width)#define CONTROLS_GAP_X (5) // gap by X coordinate#define CONTROLS_GAP_Y (5) // gap by Y coordinate//--- for buttons#define BUTTON_WIDTH (100) // size by X coordinate#define BUTTON_HEIGHT (20) // size by Y coordinate//--- for the indication area#define EDIT_HEIGHT (20) // size by Y coordinate//--- for group controls#define GROUP_WIDTH (150) // size by X coordinate#define LIST_HEIGHT (179) // size by Y coordinate#define RADIO_HEIGHT (56) // size by Y coordinate#define CHECK_HEIGHT (93) // size by Y coordinate//+------------------------------------------------------------------+//| Class CControlsDialog |//| Usage: main dialog of the Controls application |//+------------------------------------------------------------------+class CControlsDialog : public CAppDialog
{
private:
CButton m_button1; // the button object
CButton m_button2; // the button object
CButton m_button3; // the fixed button objectpublic:
CControlsDialog(void);
~CControlsDialog(void);
//--- createvirtualbool Create(constlong chart,conststring name,constint subwin,constint x1,constint y1,constint x2,constint y2);
//--- chart event handlervirtualbool OnEvent(constint id,constlong &lparam,constdouble &dparam,conststring &sparam);
protected:
//--- create dependent controlsbool CreateButton1(void);
bool CreateButton2(void);
bool CreateButton3(void);
//--- handlers of the dependent controls eventsvoid OnClickButton1(void);
void OnClickButton2(void);
void OnClickButton3(void);
};
//+------------------------------------------------------------------+//| Event Handling |//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_CLICK,m_button1,OnClickButton1)
ON_EVENT(ON_CLICK,m_button2,OnClickButton2)
ON_EVENT(ON_CLICK,m_button3,OnClickButton3)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+//| Constructor |//+------------------------------------------------------------------+
CControlsDialog::CControlsDialog(void)
{
}
//+------------------------------------------------------------------+//| Destructor |//+------------------------------------------------------------------+
CControlsDialog::~CControlsDialog(void)
{
}
//+------------------------------------------------------------------+//| Create |//+------------------------------------------------------------------+bool CControlsDialog::Create(constlong chart,conststring name,constint subwin,constint x1,constint y1,constint x2,constint y2)
{
if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
return(false);
//--- create dependent controlsif(!CreateButton1())
return(false);
if(!CreateButton2())
return(false);
if(!CreateButton3())
return(false);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| Create the "Button1" button |//+------------------------------------------------------------------+bool CControlsDialog::CreateButton1(void)
{
//--- coordinatesint x1=INDENT_LEFT;
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2=x1+BUTTON_WIDTH;
int y2=y1+BUTTON_HEIGHT;
//--- createif(!m_button1.Create(m_chart_id,m_name+"Button1",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_button1.Text("Button1"))
return(false);
if(!Add(m_button1))
return(false);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| Create the "Button2" button |//+------------------------------------------------------------------+bool CControlsDialog::CreateButton2(void)
{
//--- coordinatesint x1=INDENT_LEFT+(BUTTON_WIDTH+CONTROLS_GAP_X);
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2=x1+BUTTON_WIDTH;
int y2=y1+BUTTON_HEIGHT;
//--- createif(!m_button2.Create(m_chart_id,m_name+"Button2",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_button2.Text("Button2"))
return(false);
if(!Add(m_button2))
return(false);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| Create the "Button3" fixed button |//+------------------------------------------------------------------+bool CControlsDialog::CreateButton3(void)
{
//--- coordinatesint x1=INDENT_LEFT+2*(BUTTON_WIDTH+CONTROLS_GAP_X);
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2=x1+BUTTON_WIDTH;
int y2=y1+BUTTON_HEIGHT;
//--- createif(!m_button3.Create(m_chart_id,m_name+"Button3",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_button3.Text("Locked"))
return(false);
if(!Add(m_button3))
return(false);
m_button3.Locking(true);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| Event handler |//+------------------------------------------------------------------+void CControlsDialog::OnClickButton1(void)
{
Comment(__FUNCTION__);
}
//+------------------------------------------------------------------+//| Event handler |//+------------------------------------------------------------------+void CControlsDialog::OnClickButton2(void)
{
Comment(__FUNCTION__);
}
//+------------------------------------------------------------------+//| Event handler |//+------------------------------------------------------------------+void CControlsDialog::OnClickButton3(void)
{
if(m_button3.Pressed())
Comment(__FUNCTION__+" Состояние элемента управления: On");
elseComment(__FUNCTION__+" Состояние элемента управления: Off");
}
//+------------------------------------------------------------------+//| Global Variables |//+------------------------------------------------------------------+
CControlsDialog ExtDialog;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- create application dialogif(!ExtDialog.Create(0,"Controls",0,40,40,380,344))
return(INIT_FAILED);
//--- run application
ExtDialog.Run();
//--- succeedreturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- очистим комментарииComment("");
//--- destroy dialog
ExtDialog.Destroy(reason);
}
//+------------------------------------------------------------------+//| Expert chart event function |//+------------------------------------------------------------------+voidOnChartEvent(constint id, // event ID constlong& lparam, // event parameter of the long typeconstdouble& dparam, // event parameter of the double typeconststring& sparam) // event parameter of the string type
{
ExtDialog.ChartEvent(id,lparam,dparam,sparam);
}
//+------------------------------------------------------------------+
Atenção: Os Botões1 e 2 não são bloqueáveis, enquanto que o Botão3 é bloqueável.
2. A ligação ao servidor é desconectada e toda a renderização de indicadores é perdida, os dados que fornece permanecem.
Pode sugerir onde ler sobre isso e/ou o que acontece quando a ligação se perde, porque é que o desenho se perde, mas os dados permanecem. É possível redesenhá-lo de novo?
2. A ligação ao servidor é quebrada e toda a renderização do indicador desaparece, os dados que ele fornece permanecem.
Pode sugerir onde ler sobre isso e/ou o que acontece quando a ligação se perde, porque é que o desenho se perde, mas os dados permanecem. É possível redesenhá-lo de novo?
Obrigado de antemão!
Comece com o indicador - nomeadamente, o que acontece em OnCalculate() quando o parâmetro "rates_total" é "0":
O primeiro parâmetro rate_total contém o número de barras disponíveis para o indicador para cálculo e corresponde ao número de barras disponíveis no gráfico.
Note a ligação entre o valor retornado por OnCalculate() e o segundo parâmetro de entrada pré_calculado. O parâmetro pré_calculado na chamada de função contém um valordevolvido pela OnCalculate() na chamadaanterior. Isto permite algoritmos económicos para calcular o indicador personalizado, a fim de evitar cálculos repetidos para as barras que não mudaram desde a chamada anterior desta função.
Para isso, é normalmente suficiente devolver o valor do parâmetro rate_total, que contém o número de barras na chamada de função actual. Se desde a última chamada do OnCalculate() os dados de preços mudaram (foi bombeado um histórico mais profundo ou foram preenchidos espaços em branco no histórico), então o valor do parâmetro de entrada pré_calculado será definido para zero pelo terminal.
Как выбрать торговый сигнал в платформе MetaTrader и подписаться на него за пару кликов? Очень просто, смотри наше видео и ты узнаешь все о торговых сигналах.
Também retirei o código do botão a partir dos exemplos, .... Como fazer pressão no botão não fixo, ou seja, após a sua função ser executada, volta ao seu estado inicial.
No que diz respeito aos botões, aqui está um exemplo da ajuda:
Atenção: Os Botões1 e 2 não são bloqueáveis, enquanto que o Botão3 é bloqueável.
Transitado:
George:Por favor, aconselhe este ponto:
1. O indicador EA + está a funcionar
2. A ligação ao servidor é desconectada e toda a renderização de indicadores é perdida, os dados que fornece permanecem.
Pode sugerir onde ler sobre isso e/ou o que acontece quando a ligação se perde, porque é que o desenho se perde, mas os dados permanecem. É possível redesenhá-lo de novo?
Obrigado de antemão!
Transitado:
George:Por favor, aconselhe este ponto:
1. O indicador EA + está a funcionar
2. A ligação ao servidor é quebrada e toda a renderização do indicador desaparece, os dados que ele fornece permanecem.
Pode sugerir onde ler sobre isso e/ou o que acontece quando a ligação se perde, porque é que o desenho se perde, mas os dados permanecem. É possível redesenhá-lo de novo?
Obrigado de antemão!
Comece com o indicador - nomeadamente, o que acontece em OnCalculate() quando o parâmetro "rates_total" é "0":
O primeiro parâmetro rate_total contém o número de barras disponíveis para o indicador para cálculo e corresponde ao número de barras disponíveis no gráfico.
Note a ligação entre o valor retornado por OnCalculate() e o segundo parâmetro de entrada pré_calculado. O parâmetro pré_calculado na chamada de função contém um valordevolvido pela OnCalculate() na chamadaanterior. Isto permite algoritmos económicos para calcular o indicador personalizado, a fim de evitar cálculos repetidos para as barras que não mudaram desde a chamada anterior desta função.
Para isso, é normalmente suficiente devolver o valor do parâmetro rate_total, que contém o número de barras na chamada de função actual. Se desde a última chamada do OnCalculate() os dados de preços mudaram (foi bombeado um histórico mais profundo ou foram preenchidos espaços em branco no histórico), então o valor do parâmetro de entrada pré_calculado será definido para zero pelo terminal.
Se se trata de botões, aqui está um exemplo da ajuda:
Nota: Botão1 e Botão2 são não bloqueáveis, mas o Botão3 é bloqueável.
Este não é um bom exemplo:
1 porque bibliotecas
2 porque é feito por um painel
3 porque não o compreende.
Esbocei dois botões, um é fixo e o outro precisa de ser desbloqueado - "Adicionar" que precisa de ser desbloqueado
como juntar-se a um gestor?
mmm, ter um gestor, ver a eficácia do seu trabalho, querer "investir".
ps - desculpe, eu sou um bule.
mmm, ter um gestor, ver a eficácia do seu trabalho, querer "investir".
Desculpe, sou um principiante completo.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Perguntas de principiantes
Karputov Vladimir, 2016.08.25 11:43
Aqui está a instrução:Comosubscrever os sinaisObrigado, vou analisar o assunto.
Realmente, à primeira aproximação....... tem de se estar no terreno para o descobrir, aparentemente.
Mas eu gostaria de....
Alguma opção? Faz um pedido de adesão, preenche a papelada, deposita $ e ponto final?
Obrigado, vou analisar o assunto.
Realmente, à primeira aproximação....... tem de se estar no terreno para o descobrir, aparentemente.
Mas eu gostaria de....
Alguma opção? Fazer um pedido de adesão, preencher a papelada, depositar os $ e ponto final?
Ver vídeo tutorial:Vervídeo tutorial sobre sinais no YouTube
Tem de depositar dinheiro na sua conta MQL5.account para iniciar uma subscrição paga. Leia mais sobre oserviço de SinaisFAQ