[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 179
Je vous serais reconnaissant de me dire comment faire pour qu'en une seconde, seul un ordre soit ouvert sur un tick.
int start()
{
...
int ot=OrdersTotal();
bool open_allowed = true;
if(ot>0)
{
if(OrderSelect(ot-1,SELECT_BY_POS))
{
if(TimeCurrent()-OrderOpenTime()<=1) open_allowed=false; //если разница между текущим временем сервера и временем открытия последнего ордера 1 секунда или меньше, запретить торговлю
}
}
if(open_allowed)
{
//открываемся
}
...
}
Bien... En gros, déclarer une variable avant de commencer, se souvenir de l'heure. Après avoir passé une commande, il est égal à, disons, la vérité. Avant de le mettre en place, il faut aussi le vérifier. Je ne suis pas doué pour les variables temporelles. Avant de passer l'ordre, vérifiez si l'heure est supérieure à l'heure réelle si elle est ajoutée à cette variable. Si ce n'est pas plus grand, alors commandez, et rappelez-vous le nouveau temps ! Oui, c'est comme ça que ça se passe. Un peu simple même ! !!
Je suis un nouveau venu. C'est la première fois que j'essaie de mettre une idée en code dans le testeur.
L'idée est simple : ouvrir un ordre au prix d'ouverture de chaque bougie horaire, alternativement à la hausse et à la baisse.
J'ai écrit un code simple .... Mais le problème est que le programme ouvre parfois plus d'un ordre à l'ouverture d'un chandelier.
Il me semble que cela se produit lorsque plus d'un tic se produit en une seconde.
Comme alternative, j'ai essayé de mettre l'en-tête de la condition if( ) ...
CommandesTotal(
)==0
Une seule commande s'ouvre réellement.
Mais cette variante ne me convient pas car le lendemain le chandelier donné n'est pas ouvert, puisqu'au moment de l'ouverture de ce chandelier
il y a déjà un nombre aléatoire d'ordres dans la transaction.
J'ai également essayé d'interrompre OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) ; interrompre l'exécution de start() avec return ; ...... n'a pas aidé.
J'apprécierais que vous me disiez comment faire pour qu'un seul ordre soit ouvert à n'importe quel tick dans une seconde.
Bonne journée à vous tous !
Je suis un nouveau venu. C'est la première fois que j'essaie de mettre une idée en code dans le testeur.
L'idée est simple - ouvrir un ordre alternativement à la hausse et à la baisse au prix d'ouverture de chaque chandelier horaire.
J'ai écrit un code simple .... Mais le problème est que le programme ouvre parfois plus d'un ordre à l'ouverture d'un chandelier.
Il me semble que cela se produit lorsque plus d'un tick se produit en une seconde.
J'ai essayé de mettre dans l'en-tête de la condition if( ) ...
Une seule commande s'ouvre réellement.
Mais cette variante ne me convient pas car le lendemain la bougie donnée n'est pas ouverte, puisqu'au moment de l'ouverture de cette bougie
Il y a déjà un nombre aléatoire d'ordres dans le commerce.
J'ai également essayé d'interrompre l'exécution de l'OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) avec return ; ...... n'a pas aidé.
J'apprécierais que vous me disiez comment faire pour qu'un seul ordre soit ouvert à n'importe quel tick dans une seconde.
int start()
{
double Price=Ask ;
double SL=Price-300*Point ;
double TP=Price+300*Point ;
if( Hour()==10 && Minute()== 00 && Seconds()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) ;
}
Je ne sais pas comment, mais les données doivent être sauvegardées.
Bonne journée à vous tous !
Je suis un nouveau venu. C'est la première fois que j'essaie de mettre une idée en code dans le testeur.
L'idée est simple - ouvrir un ordre alternativement à la hausse et à la baisse au prix d'ouverture de chaque chandelier horaire.
J'ai écrit un code simple .... Mais le problème est que le programme ouvre parfois plus d'un ordre à l'ouverture d'un chandelier.
Il me semble que cela se produit lorsque plus d'un tick se produit en une seconde.
J'ai essayé de mettre dans l'en-tête de la condition if( ) ...
Une seule commande s'ouvre réellement.
Mais cette variante ne me convient pas car le lendemain la bougie donnée n'est pas ouverte, puisqu'au moment de l'ouverture de cette bougie
Il y a déjà un nombre aléatoire d'ordres dans le commerce.
J'ai également essayé d'interrompre l'exécution de l'OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) avec return ; ...... n'a pas aidé.
J'apprécierais que vous me disiez comment faire pour qu'un seul ordre soit ouvert à n'importe quel tick dans une seconde.
int start()
{
double Price=Ask ;
double SL=Prix-300*Point ;
double TP=Prix+300*Point ;
if( Hour()==10 && Minute()== 00 && Secondes()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) ;
}
solnce600:
Je vous serais reconnaissant de me dire comment faire pour qu'en une seconde, seul un ordre soit ouvert sur un tick.
Bonne journée à vous tous !
Je suis un nouveau venu. C'est la première fois que j'essaie de mettre une idée en code dans le testeur.
L'idée est simple : ouvrir un ordre au prix d'ouverture de chaque bougie horaire, alternativement à la hausse et à la baisse.
J'ai écrit un code simple .... Mais le problème est que le programme ouvre parfois plus d'un ordre à l'ouverture d'un chandelier.
Il me semble que cela se produit lorsque plus d'un tic se produit en une seconde.
Comme alternative, j'ai essayé de mettre l'en-tête de la condition if( ) ...
Une seule commande s'ouvre réellement.
Mais cette variante ne me convient pas car le lendemain le chandelier donné n'est pas ouvert, puisqu'au moment de l'ouverture de ce chandelier
il y a déjà un nombre aléatoire d'ordres dans la transaction.
J'ai également essayé d'interrompre OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) ; interrompre l'exécution de start() avec return ; ...... n'a pas aidé.
J'apprécierais que vous me disiez comment faire pour qu'un seul ordre soit ouvert à n'importe quel tick dans une seconde.
int start()
{
double Price=Ask ;
double SL=Prix-300*Point ;
double TP=Prix+300*Point ;
if( Hour()==10 && Minute()== 00 && Secondes()==00)
OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP) ;
}