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

 
FoxUA:

La question est de savoir comment écrire cette fonction correctement

cela fonctionne comme suit

et j'ai besoin que les deux fonctionnent s'il vous plaît expliquez

Ce n'est pas une question très claire, mais d'accord.
C'est très facile de l'écrire, presque la même chose que la vôtre :

void tmp_function(){
   if(my_total_order == 0){
      OpenBuyOrder(Lot,PRAsk);
      OpenBuyStopOrder(Lot,PRAsk); 
      OpenBuyLimitOrder(Lot,PRAsk);
   }
   if(my_total_order == 5){
      OpenBuyOrder(Lot,PRAsk);
      OpenBuyStopOrder(Lot*3,PRAsk); 
      OpenBuyLimitOrder(Lot*3,PRAsk);
   }
}
 
ToLik_SRGV:

La question n'est pas tout à fait claire, mais OK.
C'est très simple à écrire, presque la même chose que la vôtre :


Je ne suis pas très doué pour expliquer les choses, que pouvez-vous faire ? Bon, c'était une digression, et maintenant en fait il y a un code composé de 2 parties, chacune est le rendez-vous de la variable donc la question est de savoir s'il est possible comment combiner ces deux fonctions sans rien en retrancher

if(my_total_order == 0)           //|                     //|   
{double Lt=Lot;                  //|                     //|
  double PR=PRAsk;                //| --- первая функция  //|
  OpenBuyOrder(Lt,PR);            //|                     //|
  OpenBuyStopOrder(Lt,PR);        //|                     //|
  OpenBuyLimitOrder(Lt,PR);}      //|                     //|
//+--------------------------------+                      //|----  надо обеденить в одну
if(my_total_order == 5)           //|                     //|
{double Lt=Lot*3;                //|                     //|
  double PR=PRBid;                //| --- вторая функция  //|
  OpenSellOrder(Lt,PR);           //|                     //|
  OpenSellStopOrder(Lt,PR);       //|                     //|
  OpenSellLimitOrder(Lt,PR);}     //|                     //|

проблема   'Lt' - variable already defined (уже определенная переменная),       
           'PR' - variable already defined (уже определенная переменная), 
'Lt' 'PR' -  они как раз и нужны но как им присвоить разные значения ? 



 
FoxUA:

Je ne suis pas très doué pour expliquer les choses, que pouvez-vous faire ? Bon, c'était une digression, et maintenant en fait il y a un code composé de 2 parties, chacune est le rendez-vous de la variable donc la question est de savoir s'il est possible de combiner ces deux fonctions sans en retrancher quoi que ce soit

Ils peuvent être déclarés comme globaux, par exemple, en dehors de la fonction.
Et ils ne sont nécessaires que pour passer les valeurs Lot et PRAsk ? Il est possible de les passer directement comme je l'ai écrit.
 
ToLik_SRGV:
Vous pouvez les déclarer comme globales, par exemple en dehors des fonctions.
Sont-ils nécessaires uniquement pour passer les valeurs de Lot et PRAsk ? Vous pouvez les passer directement, comme je l'ai écrit.

Oui, mais la valeur d'un lot sera de 10 et + chacun d'eux sera à PRAsk et PRBid total des fonctions à ouvrir, à savoir " int OpenBuyOrder(double Lt, double PR).............." et le reste, sera l'enfer d'un lot, donc je regarde comment il ne serait pas décrire en 3 volumes

 

LA SOLUTION A ÉTÉ TROUVÉE, MERCI À TOUS.

 

Une autre question, comment puis-je, à partir d'un ordre au marché, affecter les prix StopLoss et TakeProfit à une variable temporelle ?

 
Techno:
sans visualisation, pourquoi ça ne marche pas ? Des objets graphiques, des objets de coin que vous n'utilisez pas ?
Même s'il s'agit d'une stratégie de base sans aucun graphique, tout de même... vide dans les résultats, comme dans un vide...
 
FoxUA:

Une autre question est de savoir comment affecter les prix StopLoss et TakeProfit d'un ordre au marché à une variable temporelle ?

Recherchez l'ordre requis sur le marché et utilisez les fonctions OrderStopLoss() et OrderProfit() pour obtenir les informations dont vous avez besoin...

================================================================================

double OrderStopLoss( )
Renvoie le prix de clôture lorsque le stop loss de l'ordre actuellement sélectionné est atteint.
La commande doit être présélectionnée à l'aide de la fonction OrderSelect().

double OrderProfit( ) )
Renvoie la valeur du bénéfice net (sans swap ni commission) pour l'ordre actuellement sélectionné. Pour les positions ouvertes, il s'agit du bénéfice non réalisé actuel. Pour les ordres fermés, il s'agit du bénéfice fixe.
La commande doit être présélectionnée à l'aide de la fonction OrderSelect().
================================================================================
... et tu l'écris dans les variables.
 
artmedia70:

Recherchez l'ordre requis sur le marché et utilisez OrderStopLoss() et OrderProfit() pour récupérer les informations dont vous avez besoin...

================================================================================

double OrderStopLoss( )
Renvoie le prix de clôture d'une position lorsque le niveau de perte stop de l'ordre actuellement sélectionné est atteint.
La commande doit être présélectionnée à l'aide de la fonction OrderSelect().

double OrderProfit( )
Renvoie la valeur du bénéfice net (sans swap ni commission) pour l'ordre actuellement sélectionné. Pour les positions ouvertes, il s'agit du bénéfice non réalisé actuel. Pour les ordres fermés, il s'agit du bénéfice fixe.
La commande doit être présélectionnée à l'aide de la fonction OrderSelect().

Je suis désolé, mais je n'ai pas demandé comment je devais trouver les données StopLoss et TakeProfit ; nous le savons !

 

Chers experts en programmation ! Pourriez-vous ajouter la fonction de vérification des heures d'ouverture au code de l'EA ? C'est-à-dire que l'EA doit ouvrir des positions uniquement dans un certain intervalle de temps, par exemple de 8h à 20h sur le fuseau horaire de Moscou.

Dossiers :
Raison: