Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 994

 
Lol Kek:

Est-il possible qu'une variable d'entrée de type booléen dans l'interface des paramètres d'entrée permette de double-cliquer au lieu de basculer entre vrai/faux pour afficher son texte ? Merci

enum  ENUM_ONOFF
{
On  = 1,  // On   тут любой текст
Off = 0   // Off  тут любой текст
};

input ENUM_ONOFF iValue = On; // Параметр
 
Vladimir Pastushak:

Merci, mais c'est un peu différent. Je connais cette méthode - dans ce cas, je vais avoir un sélecteur à liste déroulante, lorsque vous le sélectionnez, vous sélectionnez la valeur.

Mais j'ai besoin qu'il fonctionne comme entrée bool yesOrNo = true ; - quand dans les paramètres entrants il suffit de cliquer deux fois et il change la valeur à l'opposé et vice versa aux répétés. Seulement au lieu de vrai et faux, imprimez votre texte

 
Lol Kek:

Merci, mais c'est un peu différent. Je connais cette façon de faire - dans ce cas, j'aurai un sélecteur de liste déroulante, lorsque je dois le sélectionner, je sélectionnerai la valeur.

J'ai besoin qu'il fonctionne comme l'entrée bool yesOrNo = true ; - quand dans les paramètres entrants il suffit de cliquer deux fois et il change la valeur à l'opposé et vice versa à des répétés. Seulement au lieu de vrai et faux, imprimez votre texte

Il n'y a pas de différence : bool est vrai et folse est 1, folse est 0.

 

Bonjour. Je suis un débutant vert. Quelques conseils sur les principes de base.

1 - pourquoi je programme en mql4 ? il m'envoie un modèle pour mql5 avec les fonctionsint OnInit() et void OnTick()? Ils ne créent pas d'erreurs, mais ils fonctionnent. Je commence à m'y perdre.

2 - J'écris un Expert Advisor.void OnTick() - comme je le vois, il remplace la fonction int start() etint OnInit()- au lieu deint init().

2.1 - J'ai prescrit les variables qui seront utilisées dansint OnInit() et il a commencé à se plaindre. J'ai assigné un type de variable immédiatement comme il apparaît. La malédiction s'est arrêtée. Pourquoi ?

2.2 - Il est facile d'ouvrir desordres d'achat et de vente en attente. Pourquoi ne les ouvre-t-il pas ? Bien que je ne vois pas d'erreurs.

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,Ask+50,3,0,0,"bs1",1,0,clrGreen);

int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,Bid+50,3,0,0,"ss1",-1,0,clrRed);

3 - Comment visser un compteur à la variable - numéro d'ordre. (BS1, SS1) - variables qui nous indiquent directement de quel ordre il s'agit. Ainsi, lorsque l'EA continue à chercher l'ordre nécessaire, il le détectera tout aussi facilement.Son identifiant restera-t-il le même après queOP_BUYSTOP aura changé sa valeur enBUY? Pourrai-je le trouver en utilisant les données du BS1 ?

4 - Quel est le moyen le plus simple de vérifier si l'un desordres en attente est déjà ouvert ou non, surtout si un slippage possible de 3 points est spécifié dans les paramètres d'ouverture. C'est-à-dire qu'il analyse une gamme de prix, pas seulement un prix, et peut ouvrir à 1-3 pips au-dessus/au-dessous du prix par défaut.....

5. Veuillez m'indiquer où trouver un manuel ou des cours sur MQL4. Je veux améliorer mes compétences. Je me demande. Il peut s'agir d'une stratégie décrite en 2 lignes, mais lorsque j'ouvre un conseiller expert, je vois 100500 lignes de code. Pourquoi... Je ne comprends pas le code :(


Je suis inondé de questions :)) Aidez-moi à comprendre

 
<br/ translate="no">.


Je croule sous les questions )))) Aidez-moi à comprendre

2.2 : Demander+50 est un peu exagéré :-) 50 pour autant que j'ai compris l'idée des points... Je veux dire 50 * _Point... et le normaliser. Autrement dit, au lieu de Ask+50, vous devriez écrire NormalizeDouble(Ask+50*_Point,_Digits).

 
@Maxim Kuznetsov- merci).
 

Lu, compris ce que signifie chacun des paramètres, set.....

Ma vente en cours ne s'ouvre pas. Il ne donne même pas d'erreurs.GetLastError()=0 ! Il s'ouvre pour acheter comme il se doit, mais ignore pour vendre. Il me fait rire, qu'est-ce qu'il veut ? ))))

int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
    if (GetLastError()==1);
    {
    Alert (GetLastError());
    }

Braves gens, où puis-je obtenir les connaissances nécessaires ? ))

 
Gilmor:

Lu, compris ce que signifie chacun des paramètres, set.....

Ma vente en cours ne s'ouvre pas. Il ne donne même pas d'erreurs.GetLastError()=0 ! Il s'ouvre pour acheter comme il se doit, mais ignore pour vendre. Ça me fait rire - qu'est-ce qu'il veut ? ))))

Braves gens, où puis-je obtenir les connaissances nécessaires ? ))

Il y a un onglet intéressant dans le terminal appelé "Experts". C'est ici que sont écrites les erreurs des experts. Jetez un coup d'œil. Et ensuite dans votre code.

 
int start()                                  // Спец. функция start()
  {                                          
  double prise;
  double lots = 0.01;  
  if (OrdersTotal()<1)
  {
  prise = MarketInfo(Symbol(), MODE_ASK);
  // int BS1 = OrderSend (Symbol(),OP_BUYSTOP,lots,NormalizeDouble(Ask+50*_Point,_Digits),3,0,0,"bs1",1,0,clrGreen);
  int SS1 = OrderSend (Symbol(),OP_SELLSTOP,lots,NormalizeDouble(Bid+50*_Point,_Digits),3,0,0,"ss1",101,0,clrRed);
   /* if (GetLastError()==1);
    {
    Alert (GetLastError());
    }
    */
  }
 
   return;                                   // Выход из start()
  }

Artyom Trishkin:

Il y a un onglet intéressant dans le terminal - "Experts". Il contient des erreurs d'Expert Advisors. Vous pouvez y jeter un coup d'oeil. Et ensuite dans votre code.

Comme vous pouvez le voir, cet onglet affiche également des données supposées parfaites. Je l'ai chargé, je l'ai lancé. Il n'y a pas d'erreurs. :(

Et donc, merci ! Je ne savais pas qu'il fallait utiliser cet onglet.

 

Bon après-midi.

Je me suis torturé pendant une semaine pour essayer de trouver des informations. Aide avec le code))

Objectif : Trouver la différence entre les pips d'ouverture et de fermeture d'une bougie.

Faites le total et affichez-le à l'écran, pour 100 barres.

À la fin, je veux voir le montant total à l'écran.

void OnTick ()

{

double minprice =99999 , mp,cl,

maxprice =-99999 ;

double Index = 0 ;

double Index1 = 0 ;

for(int i=100 ; i>0 ; i--)

{

mp = iLow (Symbol(), PERIOD_CURRENT, i) ;

cl = iClose(Symbol(), PERIOD_CURRENT, i) ;

si( mp < minprice)

minprice = mp - cl ;

Indice = minprice + mp ;

}

Merci.

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.
Raison: