[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 112

 
Roger >> :
Il est écrit "Attention" en russe, rien de plus. Quel genre de problème est-ce ? Interrogez-les personnellement sur les données de votre société de courtage.
Si vous avez des MTS sensibles aux changements chez différents courtiers, c'est vraiment un problème.

>> Je vous demande de garder vos hypothèses pour vous (sans vouloir vous offenser), car MTS ne m'appartient pas et je vais vérifier s'il est sensible aux changements de sociétés de courtage.

 
Atis >> :
Comment capter l'apparition d'une nouvelle barre dans un EA ?

Comme ceci :

statique int LastBars ;

IBARS = iBars(Symbole(), Période()) ;

si (LastBars != IBARS)
{

LastBars = IBARS ;

.......

......

.......

}

 
ssd >> :

Comme ceci :

statique int LastBars ;

IBARS = iBars(Symbole(), Période()) ;

si (LastBars != IBARS)
{

LastBars = IBARS ;

.......

......

.......

}

Oui donc il n'y a pas d'événement sur l'apparition d'une nouvelle bougie ok merci beaucoup.

 

Ça y est, il est temps d'apprendre à programmer, maintenant je vais poser plein de questions ringardes : )

Nous y voilà... un.

Qu'est-ce que c'est ? Un simple Conseiller Expert, qu'est-ce que j'ai fait de mal ? * '\end_of_program * J'en ai marre de cette erreur, et pas seulement dans ce script.


extern int Lots = 0.1;
extern int stoploss = 50;
extern int takeprofit = 50;
extern int iWPRperiod1 = 50;
extern int iWPRperiod2 = 60;
extern int magic = 555;

int start()
{

int stoploss, takeprofit, iWPRperiod1,iWPRperiod2, magic, lots;


if (iWPR(NULL,0,iWPRperiod1,0)>iWPR(NULL,0,iWPRperiod2,0))
{
OrderSend(NULL, OP_BUY,1,Ask,lots,stoploss,takeprofit,0,magic,0,Red);
}
if (iWPR(NULL,0,iWPRperiod1,0)<iWPR(NULL,0,iWPRperiod2,0))
{
OrderSend(NULL, OP_BUY,1,Ask,Lots,stoploss,takeprofit,0,magic,0,Red);
}
return(0);
}


 

D'abord, vérifiez les crochets : ce sont tous des crochets d'ouverture. {...{ au lieu de {...} La première erreur vous indique que les parenthèses ne sont pas placées correctement dans le programme.

Vous obtiendrez alors un message indiquant qu'il manque des points-virgules à la fin d'une ligne, et vous obtiendrez même un numéro de ligne.

Et il y aura beaucoup plus de ce genre de bonté, car signaler les erreurs est une bonne action, pas ........ Traduisez les messages d'erreur, presque tout est clair.

 

Bonjour à tous. Voici une question :

Quelle version du code est la moins gourmande en ressources système (et en temps) ?

J'ai écrit un EA et il semble assez délicat, à mon avis. Il faut beaucoup de temps pour le tester...

Je pense, peut-être raccourcir les calculs d'une manière ou d'une autre.

Dans ce cas, est-il plus facile d'exécuter OrderType() ou d'extraire l'élément du tableau mass[i,1] ?

...

OrderSelect(mass[i,0],SELECT_BY_TICKET); //выбрать ордер
sl=TRALING(OrderType()); //вычисляет стоп-лосс
...

//или

...

OrderSelect(mass[i,0],SELECT_BY_TICKET); //выбрать ордер
sl=TRALING_BARS(mass[i,1]); //вычисляет стоп-лосс
...

Même chose que pour OrderStopLoss etc.

Ou par exemple :

...

//пересекла ли главная линия стохастика сигнальную линию сверху вниз

if(

iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>

iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<

iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0))

...

//и ниже

...

//пересекла ли главная линия стохастика сигнальную линию cнизу вверх
if(

iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0))

...

est-il judicieux de créer des variables et de leur attribuer des valeurs de fonction, puis de les utiliser, ou non ?

sera de type

...

double a=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF);

double b=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF);

double c=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0);

double d=iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0);

...

//пересекла ли главная линия стохастика сигнальную линию сверху вниз

if( a>b && c<d )

...

//пересекла ли главная линия стохастика сигнальную линию cнизу вверх

if( a<b && c>d )

...

Est-il plus coûteux de calculer chaque fois un arrêt, ou de créer une variable, de compter une fois un arrêt et de lire ensuite la valeur de la variable ?

Conseillez-nous, programmeurs. Merci.

 

Non, je ne vais pas réparer vos codes de façon permanente. Vous avez la technologie pour le trouver.

La seule chose que je dois noter est que je n'aime pas la notation que vous utilisez. Avec cette disposition des supports, IMHO, l'erreur est plus difficile à trouver. Regardez comment KimIV écrit.

 
mukata писал(а) >>

Bonjour à tous. Voici une question :

Quelle version du code est la moins gourmande en ressources système (et en temps) ?

J'ai écrit un EA et il semble assez délicat, à mon avis. Il faut beaucoup de temps pour le tester.

Je pense que je peux réduire les calculs d'une manière ou d'une autre.

Dans ce cas, est-il plus facile d'exécuter OrderType() ou d'extraire l'élément du tableau mass[i,1] ?

Est-il plus coûteux de compter chaque fois un arrêt, ou de créer une variable, de compter une fois un arrêt et de lire ensuite la valeur de la variable ?

Conseillez-nous, programmeurs. Merci.

Vous devez travailler à 0 bar ?

Vous essayez tellement de raccourcir les choses que je ne peux m'empêcher de penser que ce n'est pas le but...

 
FOREXMASTER писал(а) >>
Où avez-vous caché votre code ? J'allais juste le peaufiner, et il est déjà...
 
StatBars >> :

Vous devez travailler à 0 bar ?

C'est juste que vous essayez déjà tellement de raccourcir les choses que vous ne pouvez pas vous empêcher de penser qu'il ne s'agit pas d'eux...

Non, je ne suis pas un pipser, si c'est ce que vous voulez dire...

et pourquoi ça ne marcherait pas...

C'est juste que la machine est déjà chargée à la limite, le CPU est en train de bouillir... Et quand tu commences à le faire fonctionner, il commence à compter...

Je ne veux pas le réécrire pour rien - il y a beaucoup de choses de ce genre dans les programmes...

Alors, qu'en est-il de la question ?