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

 
nuan:

Cela signifie qu'il ferme l'ordre dans la même seconde, et non dans 30 minutes.


J'ai mis le code comme dans votre exemple


Le robot ne ferme pas pour d'autres raisons, c'est-à-dire qu'il ne ferme pas au stop ou au profit.


1 2011.07.29 00:00 acheter 1 0.01 1.4328 1.3328 1.5328 0.00 1000.00
2 2011.07.29 00:01 close 1 0.01 1.4327 1.3328 1.5328 -0.10 999.90
3 2011.07.29 00:01 acheter 2 0.01 1.4329 1.3329 1.5329 0.00 999.90
4 2011.07.29 00:01 close 2 0.01 1.4326 1.3329 1.5329 -0.30 999.60
5 2011.07.29 00:01 acheter 3 0.01 1.4328 1.3328 1.5328 0.00 999.60
6 2011.07.29 00:03 close 3 0.01 1.4327 1.3328 1.5328 -0.10 999.50
7 2011.07.29 00:03 acheter 4 0.01 1.4329 1.3329 1.5329 0.00 999.50
8 29.07.2011 00:03 close 4 0.01 1.4329 1.3329 1.5329 0.00 999.50


Mettez tout cela à la toute fin de la fonction start(). Vos opérations doivent passer avant.

datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
 
nuan:
Remplacer dans start() avec cette option :
 datetime CloseTime;
//=====================
 int start(){

   if(TimeCurrent()-CloseTime > 30*60){CloseAllPos();CloseTime=TimeCurrent();}//Можно поставить в любом месте функции старт.
  return(0);
 }
//====================
 
forexnew:

Je comprends.

Et si vous envisagiez d'ouvrir un compte avec 0 $ pour commencer, et la 1ère recharge comme une recharge. Est-il possible de déterminer par programme toutes les recharges (y compris la première) qui ont été effectuées sur le compte ?


:-Р

Vous ramez dans la mauvaise direction... :-)))

Il existe une fonction

double AccountBalance( ) 

Avec son aide, vous définissez l'état du solde de votre compte en fonction des transactions fermées à un moment donné.

Ensuite - supposons que vous soyez entré sur le marché - vous faites apparaître un déficit flottant sur votre compte avec des positions ouvertes, puis vous déposez des fonds sur votre compte... Il s'agit ici de déterminer le montant du fractionnement (s'il y en a un) pour corriger le volume (vers le haut) des positions ouvertes afin de conserver la "tolérance" initiale au drawdown/profit, disons en points de pourcentage du capital, à partir duquel a été calculé le volume des positions de marché "initiales" (avant fractionnement). Quelle est la solution à ce problème ?

 
CloseTime 
Нужно задавать этот параметр? если да то как?
 
nuan:


Ne le faites pas. Il s'agit d'une variable de temps "intermédiaire", toujours égale à la dernière heure de fermeture.

La durée de fonctionnement est définie en secondes. Dans votre cas, c'est 30*60.
Vous pouvez remplacer 30 par une variable, par exemple, exstern int closetime = 30.
L'heure sera alors la suivante : closetime*60.

 
charter:


Ne le faites pas. Il s'agit d'une variable de temps "intermédiaire", toujours égale à la dernière heure de fermeture.

La durée de fonctionnement est définie en secondes. Dans votre cas, c'est 30*60.
Vous pouvez remplacer 30 par une variable, par exemple, exstern int closetime = 30.
L'heure sera alors la suivante : closetime*60.

Je viens d'essayer la même chose, c'est à la fin du corps start.... Je ne comprends pas pourquoi c'est comme ça. Il y a peut-être une autre option ?
 
Roman.:


:-Р

Vous ramez dans la mauvaise direction... :-)))

Il existe une fonction

Avec son aide, vous déterminez l'état du solde de votre compte de trading pour les transactions fermées à un moment donné.

Ensuite - supposons que vous soyez entré sur le marché - vous faites apparaître un déficit flottant sur votre compte avec des positions ouvertes, puis vous déposez des fonds sur votre compte... Il s'agit ici de déterminer le montant du fractionnement (s'il y en a un) pour corriger le volume (vers le haut) des positions ouvertes afin de conserver la "tolérance" initiale au drawdown/profit, disons en points de pourcentage du capital, à partir duquel a été calculé le volume des positions de marché "initiales" (avant fractionnement). Quelle est la solution à ce problème ?


Si vous avez initialement déterminé le rapport entre le StartBalance (solde de départ) et les StarLots (lot de départ) en fonction des risques spécifiés, alors la valeur des capitaux propres doit être déterminée :

si(AccountEquity()<StartBalance) Top-up = (AccountBalance()+(StartBalance-AccountEquity()))*New Lot/StarLots

Ceci exclut AccountCredit(). Si je vous ai bien compris, bien sûr.

 
nuan:
Je viens d'essayer la même chose, c'est à la fin du corps start.... Je ne comprends pas pourquoi c'est le cas. Il y a peut-être une autre option ?
Cherchez une erreur dans quelque chose d'autre.
Les deux options devraient fonctionner.
 
Merci beaucoup !
 

Bonjour, tout le monde. J'ai une question à vous poser. Je dois trouver le maximum et le minimum les plus proches. Mais qu'ils doivent se situer à + - 10 points de Open[0] ;

Je l'ai comme ça maintenant :

pour (int i=1;i<100;i++)

si (High[i+1]<High[i] && High[i]>High[i-1] break ;

il trouve le maximum le plus proche,

Si j'ajoute la comparaison High[i]>(Open[0]+0.0010) et High[i]<(Open[0]+0.0020), voici ce que cela donne

si (High[i+1]<High[i] && High[i]>High[i-1] && High[i]>(Open[0]+0.0010) && High[i]<(Open[0]+0.0020) break ;

Le programme récupère le mauvais maximum. Quel est le problème ?

Je n'ai pas encore essayé le minimum.