[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 55

 
mr_Johns:

if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown) ;
if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown) ;


Ici, nous devrions considérer MarketInfo(Symbol(),MODE_STOPLEVEL) c'est à dire

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

priceS < =Bid- MarketInfo(Symbol(),MODE_STOPLEVEL)*Point




Non. Cette question a déjà été résolue ci-dessus. La fonction a simplement fonctionné pendant le test sur chaque tick et un nouveau prix n'a pas été obtenu aussi rapidement. Mais lorsque le prix n'a pas changé, l'erreur s'est produite.
 
hoz:

Eh bien, si vous passez des éléments à une fonction de type double ouint, celle-ci peut également effectuer les mêmes opérations, mais sans aucune perversion. Pourquoi se compliquer la vie ?

Si une fonction a un type, on suppose que la fonction renvoie une valeur de ce type.

int test() {
  int res;
  
  // какие-то действия
  
  return(res);
}

Votre fonction ne renvoie rien.

 
hoz:

Non. Cette question a déjà été résolue ci-dessus. La fonction a simplement fonctionné pendant le test sur chaque tick et le nouveau prix n'a pas été obtenu si rapidement. Mais lorsque le prix n'a pas changé, l'erreur est apparue.

Comment ça, non ? Si la condition

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

n'est pas atteint et priceB >Ask (comme dans le code)

vous obtiendrez une erreur.

Afin de ne pas modifier l'ordre lorsque le prix n'a pas eu le temps de changer, nous devons entrer la condition priceB!=OrderOpenPrice()

 
MikeM:
J'écriraisHour()>=18, et je supprimerais complètement les minutes.
Et c'est la bonne chose à faire. J'ai utilisé la fonction à d'autres fins et l'ai transférée mécaniquement ici.
//---не давать коду советника работать в пятницу с 18-00 по серверному времени 
   if(DayOfWeek()==5 && Hour()>=18){
      
      return(0);  
   } 
 
Pouvez-vous nous dire s'il est possible d'écrire un indicateur dans lequel les lignes seront dessinées dans un cadre temporel, et les données pour son dessin seront prises d'un autre cadre temporel ? le but : visualiser le redessin de la dernière barre. comment faire ?
 
lottamer:
Pouvez-vous me dire s'il est possible d'écrire un indicateur qui tracera des lignes dans un cadre temporel, et les données pour son dessin seront prises d'un autre cadre temporel ? Le but : visualiser le redessin de la dernière barre.

C'est élémentaire Watson... Dans chaque cas, au lieu de Period(), utilisez PERIOD_M15 (la période de temps à partir de laquelle vous voulez recevoir les données)... Et mettez l'indicateur sur le graphique actuel. C'est-à-dire, fixer de force la période à partir de laquelle vous voulez prendre des données.
 
Sepulca:

C'est élémentaire Watson... Dans chaque cas, au lieu de Period(), utilisez PERIOD_M15 (l'intervalle de temps à partir duquel vous voulez obtenir des données)... Et mettez l'indicateur sur le graphique actuel. En d'autres termes, fixez de force la période à partir de laquelle vous voulez prendre des données.


Ce serait facile, si j'écrivais un conseiller expert.

mais il y a un indicateur. Je ne les ai pas écrits avant.

J'ai pris l'exemple d'une stochastique standard. J'ai lu l'abécédaire des indicateurs.

Je n'ai jamais lu quoi que ce soit à propos des périodes. Cela semble signifier que les barres sont considérées dans le cadre temporel auquel l'indicateur a été appliqué.

c'est la raison de ma question.....

 
lottamer:


Ce serait facile si j'écrivais un EA.

mais il y a un indicateur. Je ne les ai pas écrits avant.

J'ai pris l'exemple d'une stochastique standard. J'ai lu l'abécédaire des indicateurs.

Je n'ai jamais lu quoi que ce soit à propos des périodes. Cela semble signifier que les barres sont considérées dans le cadre temporel auquel l'indicateur a été appliqué.

c'est la raison de ma question....


Dans un système stochastique standard :

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)

Si vous écrivez votre propre indicateur unique, utilisez int iBars( string symbol, int timeframe) au lieu de Bars

https://docs.mql4.com/ru/series/iBars

 
Sepulca:


Dans un modèle stochastique standard :

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)

Si vous écrivez votre propre indicateur unique, utilisez int iBars( string symbol, int timeframe) à la place de Bars

https://docs.mql4.com/ru/series/iBars


le problème semblait facilement résolu.

remplacé toutes les barres par desiBars (viaint iB ; iB=iBars("EUROUSD",PERIOD_M5) ;) Aucune erreur.

mais pas de graphique. Une fenêtre vide apparaît.

Il est clair qu'il manque quelque chose.

L'indicateur peut-il tracer 12 lignes sur une barre ? Parce qu'il y a 12 pentamètres à 1 heure et que chacun d'eux trace sa propre ligne.

 
lottamer:


Le problème semblait pouvoir être résolu facilement.

remplacé toutes les barres par desiBars (viaint iB ; iB=iBars("EUROUSD",PERIOD_M5) ;) aucune erreur.

Mais pas de graphique. Une fenêtre vide apparaît.

Il est clair qu'il manque quelque chose.

L'indicateur peut-il tracer 12 lignes sur une barre ? Par exemple, il y a 12 pentamètres à 1 heure et chacun d'eux trace sa propre ligne.


Il en va de même pour Close - iClose, Open - iOpen, Time - iTime Volume - iVolume, etc.

L'indicateur peut tracer jusqu'à 8 lignes de 0 à 7 https://docs.mql4.com/ru/customind/indicatorbuffers.

Raison: