[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 329

 
emilien:
extern int variable = 0 ;
extern int shift = 0.0000 ;
extern int shift2 = 0.0000 ;
int init()
{
//----

//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),15,variable,0,MODE_SMA,PRICE_CLOSE,0),shift,2),Bisque,735,277,0,14) ;
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),15,variable,0,MODE_SMA,PRICE_CLOSE,0),shift2,2),Bisque,680,27 7,0,14)
//----
retour(0) ;
}
//+------------------------------------------------------------------+


void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
si (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0) ;
ObjectSetText(nm, tx, fs) ;
ObjectSet(nm, OBJPROP_COLOR, cl) ;
ObjectSet(nm, OBJPROP_XDISTANCE, xd) ;
ObjectSet(nm, OBJPROP_YDISTANCE, yd) ;
ObjectSet(nm, OBJPROP_CORNER, cr) ;
ObjectSet(nm, OBJPROP_FONTSIZE, fs) ;
}



plus de conseils, s'il vous plaît.
je n'arrive pas à obtenir l'indentation verticale shift up et shift2 down.
ce paramètre devrait être défini différemment pour chaque graphique.
j'obtiens une erreur de compilation
regardez les crochets, vous les avez mis dans la fonction DoubleToStr, qui ne peut pas décaler
 
ilunga:

Tb et Ts dans le sens de TPb et TPs ? Là encore, j'ai suivi le même chemin, mais les ordres sont différents.

Déchargez toutes les valeurs et voyez ce que vous obtenez

Je vous demande pardon ! !!


double pb = Ask+20*Point ;

double ps = Bid-20*Point ;

double TPb = Ask+50*Point ;

double TPs = Bid-50*Point ;

ticket=OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+q*Point,5,0,Ask+50*Point, "Aw",mn,0,CLR_NONE) ;

ticket=OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid-q*Point,5,0,Bid-50*Point, "Aw",mn,0,CLR_NONE) ;

if (!ticket) Print(GetLastError()) ;

}

}

ticket=OrderTicket() ;

for (ii=OrdersTotal() ; ii>0 ; ii--)

{

si (OrderSelect(ii,SELECT_BY_POS,MODE_TRADES)==true)

{

si (OrderComment()=="Aw")

{

si (OrderType()==OP_BUYSTOP)

{

t=OrderModify(OrderTicket(),pb,0,TPb,0,CLR_NONE) ;

if (!t) Print("BUY OBUYSTOP = ",GetLastError()) ;

}

si (OrderType()==OP_SELLSTOP)

{

t=OrderModify(OrderTicket(),ps,0,TPs,0,CLR_NONE) ;

if (!t) Print("SELL OVERSTOP = ",GetLastError())

}

}

}

}

Ceci est tiré du journal :

13:55:47 0 EURUSD,M1 : modify #736403688 sell stop 0.01 EURUSD at 1.3622 sl : 0.0000 tp : 1.3592 ok

13:55:47 0 EURUSD,M1 : VENTE À DÉCOUVERT = 1

13:55:53 0 EURUSD,M1 : modify #736403688 sell stop 0.01 EURUSD at 1.3623 sl : 0.0000 tp : 1.3593 ok

13:55:53 0 EURUSD,M1 : VENTE À DÉCOUVERT = 1

13:55:54 0 EURUSD,M1 : modify #736403688 sell stop 0.01 EURUSD at 1.3622 sl : 0.0000 tp : 1.3592 ok

13:55:54 0 EURUSD,M1 : VENTE À DÉCOUVERT = 1

13:55:55 0 EURUSD,M1 : modify #736403688 sell stop 0.01 EURUSD at 1.3623 sl : 0.0000 tp : 1.3593 ok

acheter et non modifier

Merci d'avance !

 
smartemiy:

Désolé ! !!


...

for (ii=OrdersTotal() ; ii>0 ; ii--)

...

bye ne modifie pas

Merci d'avance !

La numérotation part de zéro. Déplacez la boucle sur 1 :

for (ii=OrdersTotal()-1; ii>=0; ii--)

 
ilunga:
regardez les parenthèses, vous les avez mises dans la fonction DoubleToStr, qui ne peut pas se décaler

parenthèse gauche déséquilibrée

les coordonnées d'erreur sont les crochets à la toute fin.

Mais cette fourchette est normale.

Qu'est-ce que ça peut être ?


 
emilien:

parenthèse gauche déséquilibrée

les coordonnées de l'erreur sont les crochets à la toute fin.

Mais cette fourchette est normale.

Qu'est-ce que ça peut être ?


il manque une parenthèse quelque part, donc c'est un combat. Regardez de plus près.
 
ilunga:

La numérotation part de zéro. Déplacez la boucle sur 1 :

for (ii=OrdersTotal()-1; ii>=0; ii--)

Merci beaucoup ! !! c'était le problème.

--------------------------------------------------------------

Pourquoi l'erreur s'affiche-t-elle ?

15:38:55 0 EURUSD,M1 : VENDRE SOCK = 1

15:38:55 0 EURUSD,M1 : ACHETER COURT = 1

 
Merci à tous, ça marche. =)
 
Roman.:


Ce n'est pas Pascal - il n'y a pas de procédures...:-) Une fonction - une valeur...:-)

Voir le script de clôture GetMarketInfo f-file de tous les ordres - l'utilisation de tableaux est possible.


Merci.
 

Bonjour, comment formaliser et algorithmer la fréquence de l'alternance des barres "blanches" et "vertes" ?

 
Shniperson:

Bonjour, comment formaliser et algorithmer la fréquence de l'alternance des barres "blanches" et "vertes" ?


Tout est possible.

Quel genre de scie...