J'ai également repris le code du bouton dans les exemples, ..... Comment faire en sorte que l'appui sur un bouton ne soit pas fixe, c'est-à-dire qu'après l'exécution de sa fonction, il revienne à son état initial.
En ce qui concerne les boutons, voici un exemple tiré de l'aide :
//+------------------------------------------------------------------+//| 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);
}
//+------------------------------------------------------------------+
Veuillez noter que les boutons 1 et 2 ne sont pas verrouillables, tandis que le bouton 3 est verrouillable.
2. La connexion au serveur est déconnectée et tout le rendu de l'indicateur est perdu, les données qu'il fournit restent.
Pouvez-vous suggérer où lire à ce sujet et/ou ce qui se passe lorsque la connexion est perdue, pourquoi le dessin est perdu, mais les données restent. Est-il possible de le redessiner à nouveau ?
2. La connexion au serveur est déconnectée et tout le rendu de l'indicateur est perdu, les données qu'il fournit restent.
Pouvez-vous suggérer où lire à ce sujet et/ou ce qui se passe lorsque la connexion est perdue, pourquoi le dessin est perdu, mais les données restent. Est-il possible de le redessiner à nouveau ?
Merci d'avance !
Commencez par l'indicateur - à savoir, ce qui se passe dans OnCalculate() lorsque le paramètre "rates_total" est "0" :
Le premier paramètre rates_total contient le nombre de barres dont dispose l'indicateur pour le calcul et correspond au nombre de barres disponibles dans le graphique.
Notez le lien entre la valeur renvoyée par OnCalculate() et le deuxième paramètre d'entrée prev_calculated. Le paramètre prev_calculated de l'appel de fonction contient une valeurrenvoyée par OnCalculate() lors de l'appelprécédent. Cela permet d'utiliser des algorithmes économiques pour calculer l'indicateur personnalisé afin d'éviter des calculs répétés pour les barres qui n'ont pas changé depuis l'appel précédent de cette fonction.
Pour cela, il suffit généralement de renvoyer la valeur du paramètre rates_total, qui contient le nombre de barres dans l'appel de fonction actuel. Si depuis le dernier appel de OnCalculate() les données de prix ont changé (un historique plus profond a été pompé ou les blancs de l'historique ont été remplis), alors la valeur du paramètre d'entrée prev_calculated sera mise à zéro par le terminal.
Как выбрать торговый сигнал в платформе MetaTrader и подписаться на него за пару кликов? Очень просто, смотри наше видео и ты узнаешь все о торговых сигналах.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
J'ai également repris le code du bouton dans les exemples, ..... Comment faire en sorte que l'appui sur un bouton ne soit pas fixe, c'est-à-dire qu'après l'exécution de sa fonction, il revienne à son état initial.
En ce qui concerne les boutons, voici un exemple tiré de l'aide :
Veuillez noter que les boutons 1 et 2 ne sont pas verrouillables, tandis que le bouton 3 est verrouillable.
Reporté :
George:Veuillez me conseiller sur un tel point :
1. L'indicateur EA + fonctionne
2. La connexion au serveur est déconnectée et tout le rendu de l'indicateur est perdu, les données qu'il fournit restent.
Pouvez-vous suggérer où lire à ce sujet et/ou ce qui se passe lorsque la connexion est perdue, pourquoi le dessin est perdu, mais les données restent. Est-il possible de le redessiner à nouveau ?
Merci d'avance !
Reporté :
George:Veuillez me conseiller sur un tel point :
1. L'indicateur EA + fonctionne
2. La connexion au serveur est déconnectée et tout le rendu de l'indicateur est perdu, les données qu'il fournit restent.
Pouvez-vous suggérer où lire à ce sujet et/ou ce qui se passe lorsque la connexion est perdue, pourquoi le dessin est perdu, mais les données restent. Est-il possible de le redessiner à nouveau ?
Merci d'avance !
Commencez par l'indicateur - à savoir, ce qui se passe dans OnCalculate() lorsque le paramètre "rates_total" est "0" :
Le premier paramètre rates_total contient le nombre de barres dont dispose l'indicateur pour le calcul et correspond au nombre de barres disponibles dans le graphique.
Notez le lien entre la valeur renvoyée par OnCalculate() et le deuxième paramètre d'entrée prev_calculated. Le paramètre prev_calculated de l'appel de fonction contient une valeurrenvoyée par OnCalculate() lors de l'appelprécédent. Cela permet d'utiliser des algorithmes économiques pour calculer l'indicateur personnalisé afin d'éviter des calculs répétés pour les barres qui n'ont pas changé depuis l'appel précédent de cette fonction.
Pour cela, il suffit généralement de renvoyer la valeur du paramètre rates_total, qui contient le nombre de barres dans l'appel de fonction actuel. Si depuis le dernier appel de OnCalculate() les données de prix ont changé (un historique plus profond a été pompé ou les blancs de l'historique ont été remplis), alors la valeur du paramètre d'entrée prev_calculated sera mise à zéro par le terminal.
S'il s'agit de boutons, voici un exemple tiré de l'aide :
Remarque : les boutons 1 et 2 ne sont pas verrouillables, mais le bouton 3 est verrouillable.
Ce n'est pas un bon exemple :
1 parce que les bibliothèques
2 parce qu'il est réalisé par un panel
3 parce que vous ne le comprenez pas.
J'ai esquissé deux boutons, l'un est fixe et l'autre doit être déverrouillé - "Ajouter" qui doit être déverrouillé
comment rejoindre un manager ?
mmm, avoir un manager, voir l'efficacité de son travail, vouloir "investir".
ps - désolé, je suis une théière.
mmm, avoir un manager, voir l'efficacité de son travail, vouloir "investir".
Je suis désolé, je suis un débutant complet.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Questions des débutants
Karputov Vladimir, 2016.08.25 11:43
Voici l'instruction :Comments'abonner aux signaux?Merci, je vais m'en occuper.
Vraiment, à première approximation....... il faut être sur le terrain pour s'en rendre compte apparemment.
Mais je voudrais....
Des options ? Dois-je faire une demande d'adhésion, remplir les documents, déposer les fonds et c'est tout ?
Merci, je vais m'en occuper.
Vraiment, à première approximation....... il faut être sur le terrain pour s'en rendre compte apparemment.
Mais je voudrais....
Des options ? Faire une demande d'adhésion, remplir la paperasse, déposer l'argent et c'est tout ?
Voir la vidéo du tutoriel :Voir lavidéo du tutoriel sur les signaux sur YouTube
Vous devez déposer de l'argent sur votre compte MQL5.pour commencer un abonnement payant. En savoir plus sur laFAQ du service Signaux