Comment coder ? - page 12

 

Aide pour l'explication du code du filtre temporel Tradestation

Bonjour,

Je regarde un code de filtre temporel tradestation et comme je n'ai jamais utilisé tradestation auparavant, je ne suis pas très sûr de lui. Quelqu'un qui a de l'expérience avec ce code peut le clarifier ?

entrées :

time_offset(0), {Heure de l'Est}

begin_time(800),

end_time(1600) ;

si time >=begin_time + time_offset et time <=end_time + time_offset alors begin

Ce code de filtre temporel indique-t-il que la transaction sera lancée entre 8h00 et 16h00, heure de l'Est ?

Merci de votre aide.

 

Le numéro de décalage de -100 doit être utilisé lorsque les données se trouvent, par exemple, dans Central Stand. C'est à vous de le déterminer.

Quant à la logique, elle dit que si elle se situe entre 800 et 1600 heures, il faut commencer à faire quelque chose... comme surveiller une certaine configuration.

J'espère que cela vous aidera.

Maji

 

Salut Maji,

Merci pour la confirmation et le commentaire sur le décalage. Maintenant je sais comment utiliser le décalage.

 

question sur l'échelonnement du lot ..besoin d'aide sur le code...

Je sais que je suis responsable de prendre mes propres risques lorsque j'utilise une stratégie. Je ne veux pas effrayer qui que ce soit. Je cherche de l'aide pour un code que je pourrais mettre dans un EA qui ajusterait la taille du lot des ordres en fonction d'un pourcentage de la marge libre actuelle du compte et me laisserait choisir avec quel pourcentage entrer dans la prochaine position.

 

Hey-

Définir un double externe comme :

extern double RiskFraction=0.1 ;

Puis dans le "start(" ajouter :

double Lots=(MathRound(AccountFreeMargin()*RiskFraction/10.0)/100) ;

....

OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,0, "EA Name",MagicNum,0,Green) ;

.1 signifie un risque de 10% de votre compte.

Bonne chance ,

Gavner

 

Question

Gavner:
Hey-

Définir un double externe comme :

extern double RiskFraction=0.1 ;

Puis dans le "start(" ajouter :

double Lots=(MathRound(AccountFreeMargin()*RiskFraction/10.0)/100) ;

....

OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,0, "EA Name",MagicNum,0,Green) ;

.1 signifie un risque de 10% de votre compte.

Bonne chance ,

Gavner

C'est ce que je cherchais pour mon EA.

De plus, existe-t-il une partie du code qui limitera le nombre de transactions ouvertes en fonction de la marge disponible.

Exemple : Il continuera à ouvrir des transactions jusqu'à ce que 50% du solde de la marge disponible soit utilisé ?

Merci !

Spider~

 

Besoin de codeurs pour casser le code

viktoriwan:
ça donne quelque chose comme ça : if(mov(zig(4,c),4,e) - mov(zig(9,c),7,e)

Bonjour... quelqu'un a remarqué ce fil et veut m'aider ?

 
 

J'ai besoin d'un code stop loss déclenché par le compte... je cherche un programmeur.

J'aimerais utiliser un stop loss qui se déclenche lorsque les capitaux propres du compte sont inférieurs au solde du compte d'un pourcentage donné. Avec une stratégie, quelque chose de simple comme ZERO pour cent devrait fonctionner ,mais j'aimerais pouvoir utiliser cela sur d'autres stratégies aussi, donc j'aimerais pouvoir spécifier un pourcentage de tolérance de perte pour chaque position perdante de cette façon. Au moment du déclenchement, je voudrais qu'il ferme tous les ordres ouverts.

Quelqu'un pourrait-il faire cela pour moi ? J'ai une stratégie qui en bénéficierait vraiment. Le problème, c'est qu'un stop loss traditionnel la gâche. Si je peux faire en sorte que les perdants soient stoppés afin qu'ils ne ponctionnent pas les fonds propres des gagnants, cela devrait vraiment fonctionner.

 

if(AccountEquity()<AccountBalance()) {

{

int ttotal = OrdersTotal();

for(int i=ttotal-1;i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS);

int type = OrderType();

bool result = false;

switch(type)

{

//Close opened long positions

case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );

break;

//Close opened short positions

case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );

}

if(result == false)

{

Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );

Sleep(3000);

}

}

return(0);

}

}

}

ok, voici ce que j'ai essayé... c'est en grande partie copié d'un autre code que quelqu'un d'autre a fait ici... mais il ferme tout aussi vite qu'il s'ouvre et ne prête aucune attention à la condition 'if' avant d'exécuter les fermetures....oy je ne suis pas bon à cela.... je n'ai évidemment pas la partie qui fait la fermeture des ordres suffisamment attachée à la ligne conditionnelle qui compare l'équité du compte au solde du compte. Quelqu'un pourrait-il m'aider ?

Raison: