[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 515

 
edyuson:

Je ne te blâme pas, ce n'est pas mon puzzle. J'ai juste trouvé un algorithme similaire, dont j'ai besoin et j'essaie de le terminer, comme j'en ai besoin. https://www.mql5.com/ru/code/9927 Ce que j'ai enlevé, ce que j'ai laissé.

je le veux 0.01,0.01,0.01 ; 0.02,0.02,0.02 ; 0.04,0.04,0.04 ; 0.08,0.08,0.08......

certains le font via un tableau
 
YOUNGA:
certains le font par le biais d'un tableau


comme ça :

double mas[3];
int q;
int w;

for (int z=OrdersHistoryTotal()-1; z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q>=3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]<0 && mas[1]<0 && mas[2]<0) w=1; //Ваше условие
 

Salut !

Pouvez-vous me conseiller sur la façon de vérifier si une paire de devises est disponible lors du lancement d'un indicateur ?

Je suis malade et fatigué de me battre avec cet em-ku-el.

Voici le code :

[CODE]

extern string CurrencyPair = "";
string gsSymbol, gsIndiName;

bool bIndicatorError;

...

int start() {

if (StringLen(CurrencyPair) == 0)
gsSymbol = Symbol();

else

gsSymbol = CurrencyPair;

Comment(MarketInfo(gsSymbol, MODE_TRADEALLOWED)); // ЗАКОВЫКА ЗДЕСЬ, это чудо всегда возвращает 0.0000000 при старте терминала. Если же потом открыть свойства индикатора и даже ничего не поправлять в параметрах, то возвращает 1.000000

if (!MarketInfo(gsSymbol, MODE_TRADEALLOWED)) {
Alert(gsIndiName, ": Trade is not allowed for symbol [", gsSymbol,"]");
bIndicatorError = true;
return(-1);
}

}

[CODE]

Il existe peut-être un moyen plus facile et plus fiable.

En général, je ne comprends pas comment on peut écrire des programmes dans un langage dont les fonctions de base fonctionnent, puis ne fonctionnent plus.

 
Pouvez-vous me dire s'il est possible de faire un script avec des paramètres personnalisables ? Je crois avoir vu quelque part un script qui vous demande d'entrer les paramètres lorsque vous le lancez.
 
sss2019:
Pouvez-vous me dire s'il est possible de faire un script avec des paramètres personnalisables ? Je crois avoir vu quelque part un script qui vous demande d'entrer les paramètres lorsque vous le lancez.
Rendre les paramètres externes externes dans le script
 
artmedia70:
rendre les paramètres externes externes dans le script


J'ai fait les paramètres

extern string StartTime = "2011.01.01";
extern string EndTime = "2011.01.25";

mais pour une raison quelconque, le script n'affiche pas leurs paramètres avant l'exécution.

 
Dobr:


comme ça :

double mas[3];
int q;
int w;

for (int z=OrdersHistoryTotal()-1; z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q>=3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]<0 && mas[1]<0 && mas[2]<0) w=1; //Ваше условие
0.01,0.02,0.04,0.08,0.16... J'en ai besoin 0.01,0.01,0.01 ; 0.02,0.02,0.02 ; 0.04,0.04,0.04 ; 0.08,0.08,0.08......
 
sss2019:


J'ai fait les paramètres

mais pour une raison quelconque, le script n'affiche pas leurs paramètres avant l'exécution.

https://docs.mql4.com/ru/basis/preprosessor/compilation
 
edyuson:
0.01, 0.02, 0.04, 0.08, 0.16... J'en ai besoin 0.01,0.01,0.01 ; 0.02,0.02,0.02 ; 0.04,0.04,0.04 ; 0.08,0.08,0.08......


J'ai écrit EXEMPLE... ;)

voici une version plus précise :

double mas[3]={0,0,0};
int q=0;
int w=0;
int z=0;
for (z=OrdersHistoryTotal()-1;z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q==3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]==lot && mas[1]==lot && mas[2]==lot) w=1;
if (w==1) lot=OrderLots()*2;
 
ForexTader:


En général, je ne comprends pas comment on peut écrire des programmes dans un langage dont les fonctions de base fonctionnent, puis ne fonctionnent plus.


Vous pouvez essayer de transférer une partie des contrôles d'init à start. Vous pouvez également vérifier l'état du terminal, etc.