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

 
Pouvez-vous me dire quel code écrire pour que, lorsque la transaction est fermée, la transaction suivante ne puisse être ouverte que sur la barre suivante ?
 
Pouvez-vous me dire comment faire en sorte que les chandeliers sur le graphique des prix soient colorés en vert lorsque l'Awesome Oscillator et l'Acceleration/Deceleration Oscillator sont verts, qu'ils soient colorés en rouge lorsque l'Awesome Oscillator et l'Acceleration/Deceleration Oscillator sont rouges, et que lorsque les indicateurs sont de couleurs différentes, les chandeliers soient gris ?
 
gmMarat писал(а) >>
Pouvez-vous me dire quel code doit être écrit pour fermer une transaction, afin que la prochaine transaction ne puisse être ouverte que sur la prochaine barre ?

La question est donc : comment conclure l'affaire ? S'agit-il d'un arrêt (ce qui est plus compliqué), ou devons-nous le fermer nous-mêmes ? Si nous la fermons nous-mêmes, c'est beaucoup plus facile.

 
Nosferatu писал(а) >>
Pouvez-vous me dire comment faire pour que les chandeliers sur le graphique des prix soient colorés en vert lorsque l'Awesome Oscillator et l'Acceleration/Deceleration Oscillator sont verts, qu'ils soient colorés en rouge lorsque l'Awesome Oscillator et l'Acceleration/Deceleration Oscillator sont rouges, et que lorsque les indicateurs sont de couleurs différentes, les chandeliers soient gris ?

Je n'ai jamais peint de chandelier, mais j'ai déjà vu cette dinde dans la base. Vraiment, il y a environ quatre mois. Cherchez.

 
infinum13 >> :

La question est donc : comment conclure l'affaire ? S'agit-il d'un arrêt (ce qui est plus compliqué), ou devons-nous le fermer nous-mêmes ? Si nous la fermons nous-mêmes, c'est beaucoup plus facile.

Les transactions sont fermées au niveau du Take Profit ou du Stop Loss !

 

Question.

J'ai un indicateur qui écrit une cotation pour l'outil comme ceci - 2321.50000000


Comment puis-je me débarrasser des zéros supplémentaires ?

 

Très bien pour les experts en écriture ici. http://www.vedikhin.ru/2006/06/expert-advisors-overview.html

Et que les dieux du forex me pardonnent, c'est au format Wordov .

Dossiers :
 

Aidez-moi aussi.

Limitations du compilateur. J'aimerais connaître les restrictions sur les tableaux (nombre de tableaux ou nombre total d'éléments ou autre chose comme la mémoire allouée), et sur le nombre de variables globales au sens de variables superglobales.

 

Bonjour à tous.

J'ai décidé d'écrire un expert. J'ai pris un Stoch pour ça. Je pense qu'il ne devrait avoir qu'un seul ordre, mais il vendra au-dessus de 80 et fermera en dessous de 50. J'ai également ajouté le StopLoss afin de réduire les pertes. Je l'ai testé. L'expert semble fonctionner, mais parfois les StopLoss sont pris les uns après les autres. J'ai donc décidé de modifier les conditions d'échange après la première perte afin qu'elles diffèrent sensiblement des conditions initiales. Dans ce but, j'ai introduit la fonction isCloseLastPosByStop que j'ai prise de Kima et qui m'a plu. Si Loss est travaillé, il donne des signaux et écrit dans le log ; après le signal if(SSL==true) je fixe de nouvelles conditions de vente. Je l'ai écrit, compilé, lancé - il fonctionne, mais il faut aussi plusieurs LossO à certains endroits à la suite pour qu'il s'arrête. Comme je ne suis pas très expérimenté dans MQL4, je ne sais pas ce qui ne va pas. Veuillez m'aider de toutes les manières possibles..... nous ne sommes pas d'ici...... et peut-être que quelqu'un me dira comment mettre en œuvre cette idée d'une autre manière. Merci d'avance, c'est un bon endroit, je ne suis jamais parti sans un avis qualifié.....


#property copyright "Alex"

#lien de propriété "http://www.сайта.net"
//---- paramètres d'entrée
extern int int MagicNamber=88881 ;
extern int K_per=30 ;
extern int D_per=8 ;
extern int Slow=10 ;
extern double Lots=1.0 ;
extern double StopLoss=300 ;
double externe SSL=0 ;

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

int start()
{
int
cnt=0,
billet,
total ;
double
StochK_0, // Valeur de la ligne K
StochD_1, // valeur de la ligne D
SL=StopLoss ;
isCloseLastPosByStop() ;
si (Bars<100)
{
Print("barres inférieures à 100") ;
retour(0) ;
}
StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0) ; // K
StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2) ; //D
total=OrdersTotal() ;
si(total<1)
if ((StochK_0>StochD_1) && StochD_1 > 80) // condition de vente
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green) ;
si(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Ordre de vente ouvert : ",OrderOpenPrice())
}
else Print("Erreur lors de l'ouverture d'un ordre de VENTE : ",GetLastError()) ;
retour(0) ;
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates() ;
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;
if(OrderType()<=OP_SELL && // il s'agit d'une position ouverte ? OP_BUY ou OP_SELL
OrderSymbol()==Symbol()) // correspondance de l'outil ?
{
if(OrderType()==OP_SELL) // la position est ouverte
SSL=isCloseLastPosByStop() ;
if(SSL==true)

{
Print("StopLoss") ;
}
total=OrdersTotal() ;
si(total<1)
if ((StochK_0<StochD_1) && StochK_0 < 50) // condition de vente si le StopLoss est déclenché
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green) ;
si(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Ordre de vente ouvert : ",OrderOpenPrice())
}
else Print("Erreur lors de l'ouverture d'un ordre de VENTE : ",GetLastError()) ;
retour(0) ;
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates() ;
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;
if(OrderType()<=OP_SELL && // il s'agit d'une position ouverte ? OP_BUY ou OP_SELL
OrderSymbol()==Symbol()) // correspondance de l'outil ?
{
if(OrderType()==OP_SELL) // la position est ouverte
{
if(StochK_0>StochD_1 && StochD_1 < 50) // condition de clôture
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // position de clôture
return(0) ; // sortie
}}}}}}}
//___user fu-ya
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
date t ;
double ocp, osl ;
int dg, i, j=-1, k=OrdersHistoryTotal() ;

si (sy=="0") sy=Symbole() ;
for (i=0 ; i<k ; i++) {
si (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
si (OrderSymbol()==sy || sy==") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
si (op<0 || OrderType()==op) {
si (mn<0 || OrderMagicNumber()==mn) {
si (t<OrderCloseTime()) {
t=OrderCloseTime() ;
j=i ;
}}}}}}}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS) ;
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4 ; else dg=2 ;
ocp=NormalizeDouble(OrderClosePrice(), dg) ;
osl=NormalizeDouble(OrderStopLoss(), dg) ;
si (ocp==osl) return(True) ;
}
retourner(Faux) ;
}
 
luka писал(а) >>

Question.

J'ai un indicateur qui écrit une cotation pour l'outil comme ceci - 2321.50000000

Comment se débarrasser des zéros supplémentaires ?

L'opérateur DoubleToStr() vous aidera.