[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 - 2. - page 187

 
NayTmeR:

Par exemple, lorsque la ligne val1[c] franchit 0,45 vers le haut, la valeur du temps est affectée à la variable TimeBegin

quelle est la question ? comment stocker le temps quand on traverse ? d'abord vérifier s'il y a une intersection, puis stocker
 

Comment assigner ce temps à une variable ?

 
eddy:
Eh bien, les flèches sont sur la barre d'ouverture.

Je ne suis pas sûr de comprendre. Il y a des flèches sur la barre d'ouverture, mais elles sont dessinées par la fonction correspondante - OrderSend(). Ces flèches ne sont pas liées aux flèches dessinées par OrderModify(), n'est-ce pas ? J'ai compris qu'en utilisant OrderModify(), non seulement je colore les flèches, mais aussi je change le niveau de stop loss, en changeant la valeur de la variable SL ? C'est écrit dans l'aide :

bool OrderModify( int ticket, double prix, double stoploss, double takeprofit, date d'expiration, couleur arrow_color=CLR_NONE)

Modifie les paramètres des positions précédemment ouvertes ou des ordres en attente.

Cela signifie qu'il modifie non seulement la couleur de la flèche, mais aussi "les paramètres des ordres précédemment ouverts". Il suggère de modifier les arrêts et de tirer des flèches. Mais il ne le fait pas pour une raison quelconque.

 

Le mot "seulement" concernait la flèche, pas ce que fait la fonction.

стрелки на баре открытия есть, но нарисованные соответствующей функцией - OrderSend(). Эти стрелки же не относятся к стрелкам, рисуемым OrderModify()?

Vous définissez un stop et/ou une prise, c'est ainsi que les flèches changent. Qu'est-ce qui vous fait penser qu'il faudrait créer plus de flèches ?

 
NayTmeR:

Comment assigner ce temps à une variable ?

Il y a une fonction pour cela dans le livre de Kim.
 
todem:
il existe une telle caractéristique dans la collection de Kim

Pouvez-vous être plus précis ? Où puis-je le trouver ? Où puis-je trouver la collection Kim's ?
 
eddy:

Le mot "seulement" concernait la flèche, pas ce que fait la fonction.

Vous pouvez utiliser cette fonction pour définir un arrêt et/ou une prise, de sorte que ses flèches changent.

Le manuel OrderModify() dit :

arrow_color - Couleur des flèches de modification de StopLoss et/ou TakeProfit sur le graphique. Si ce paramètre est absent ou si sa valeur est CLR_NONE, les flèches n'apparaissent pas sur le graphique.

C'est-à-dire que, d'après ce que j'ai compris, OrderModify() dessine des flèches parce qu'il est écrit "Flèches de modification", ce qui signifie qu'il n'y a pas seulement des flèches d'ouverture/fermeture créées par OrderSend, mais aussi des flèches de modification créées par OrderModify. Et ces flèches de MODIFICATION ne peuvent être absentes que si le paramètre est absent ou égal à CLR_NONE. Mais mon paramètre est présent et égal à "Vert". J'ai compris qu'il n'y a pas de paramètre spécial responsable de la présence ou de l'absence de flèches de modification, il est contrôlé par l'absence ou l'égalité de son CLR_NONE. Je juge par analogie avec OrderSend dans le même helper :

arrow_color - couleur de la flèche d'ouverture sur le graphique. Si le paramètre est absent ou si sa valeur est CLR_NONE, la flèche d'ouverture n'est pas affichée dans le graphique.

 

Veuillez m'aider avec la fonction isCloseLastPosByStop ().

J'insère dans MetaEditor la fonction isCloseLastPosByStop () (mais seulement ce qui est écrit sur https://www.mql5.com/ru/forum/107476/page21).

Après une compilation infructueuse, je reçois des erreurs :

'(' - définition de fonction inattendue

t" - variable non définie

t" - variable non définie

'}' - parenthèses non équilibrées

C'est cette fonction, comme je l'ai commenté sur le reste du code.

 

Bonjour à tous ! Veuillez aider à combiner les éléments suivants. Le résultat devrait être : deux lignes suivant le prix, une 20 pips en dessous de Ask,

et un autre plus haut. De plus, je reçois un bip si le prix change de 20 points par 1 tick.

Tout fonctionne bien séparément. Merci d'avance !

1) La ligne est 20 pips en dessous de Ask.

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask-20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask-20*Point) ;
retour(0) ;
}

//+------------------------------------------------------------------+

2) Ligne au-dessus de Demander de 20p.

//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int start()
{
ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask+20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point) ;
retour(0) ;
}

//+------------------------------------------------------------------+

3) Le taux de variation des prix dans le temps.

#property show_inputs

extern int int pips=2 ; //changer l'Ask
extern double Time_=0.1 ; //c. ~ tique
extern bool all_from_view=true ; //seulement le symbole actuel - false

int i, l, p, nombre_de_caractères ;
chaîne de caractères val[], on_screen ;
int Ask_save[] ;

//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
void start(){
number_of_characters=SymbolsList(val, true);//écrit les outils et leur nombre dans le tableau val appelle la fonction SymbolsList
ArrayResize(Ask_save,nombre_de_caractères) ;
if(number of_characters == -1){ Alert("SymbolsList(string &Symbols[], bool Selected) failed") ; return;}
if(!all_from_view_market){
nombre_de_caractères=1 ;
ArrayResize(Ask_save,number_of_characters) ;
ArrayResize(val,nombre de_caractères) ;
val[0]=Symbole() ;
}

while(true&&!IsStopped()){ //si le script est autorisé et n'est pas arrêté, il continue

Alert("recalculer dans "+Temps_+" sec ;)

for(i=0;i<nombre de_caractères;i++){ //calculer la valeur du spread pour les symboles à partir de la surveillance du marché
si((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT))>=pips){
Alert(val[i]+", "+Period()+" a changé à la baisse de "+DoubleToStr((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)),0)+" pips") ;
PlaySound("timeout.wav") ;
}
si((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i])>=pips){
Alert(val[i]+", "+Period()+" a changé à la hausse de "+DoubleToStr((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i]),0)+" pips") ;
PlaySound("email.wav") ;
}
Ask_save[i]=MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT) ;
}
Sleep(Time_*1000);//pause pendant sec.
}

/*
number_of_characters=SymbolsList(val, true);//écrit les outils et leur nombre dans le tableau val Appel de la fonction SymbolsList
if(number of_characters == -1){ Alert("Error opening file in SymbolsList(string &Symbols[], bool Selected)") ; return;}

while(true&&!IsStopped()){ //si le script est autorisé et qu'il n'est pas arrêté, il va continuer
on_screen="\r\n" ; // indentation
for(i=0;i<nombre de_caractères;i++)//calculer la valeur du spread pour les symboles de la revue de marché
on_screen=on_screen+val[i]+" spread cost = " + DoubleToStr(MarketInfo(val[i],MODE_SPREAD)*MarketInfo(val[i],MODE_TICKVALUE),0)+"\r\n" ;
Comment(to_screen);//affichage
Alert("recalculer");//signal
Sleep(3000);//pause pendant 3 secondes.
}
*/
}
void deinit(){Comment("");}
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=


//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
//la fonction lit tous les instruments financiers à partir du Market Watch.
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
int SymbolsList(string &Symbols[], bool Selected){
int Offset, SymbolsNumber ; string SymbolsFileName ;
if(Selected) SymbolsFileName = "symbols.sel" ; else SymbolsFileName = "symbols.raw" ;
int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ) ;
if(hFile < 0) return(-1) ; if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128 ; Offset = 116 ; }
else { SymbolsNumber = FileSize(hFile) / 1936 ; Offset = 1924 ; }
ArrayResize(Symboles, SymbolesNombre) ;
if(Selected) FileSeek(hFile, 4, SEEK_SET) ;
for(int i = 0 ; i < SymbolsNumber ; i++){Symbols[i] = FileReadString(hFile, 12) ; FileSeek(hFile, Offset, SEEK_CUR);}
FileClose(hFile) ;
retourner(SymbolesNombre) ;
}

 
globad:

Bonjour à tous ! Veuillez aider à combiner les éléments suivants. Le résultat final devrait être : deux lignes suivant le prix, une en dessous de Ask de 20 pips,.....

C'est un manque de respect envers ceux que vous interrogez. Apprenez à afficher correctement le code -> SRC

Raison: