[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 462

 
rosomah:

Le DC a unilatéralement augmenté le stop out de 1-2% à 15%. Je l'ai découvert par accident. Je suppose qu'il peut y avoir d'autres inconvénients, comme l'augmentation des marges, le gel ou d'autres changements. Quelqu'un a-t-il vu un EA qui signale une alerte après tout changement de paramètres ? Je vais devoir en écrire un.

Messieurs, quelles autres données peuvent être demandées aux sociétés de courtage en dehors de celles que j'ai insérées dans le script ?

C'est peut-être un phénomène normal le vendredi avant de partir en week-end... Vous avez toujours un pourcentage donné par Dieu.

Tout devrait être dans l'accord commercial...

Je n'ai pas regardé votre script, mais par exemple, Alpari élargit le spread sur les nouvelles (avant le week-end).

 
Roman.:

C'est peut-être normal le vendredi avant de partir pour le week-end... Vous avez toujours un pourcentage approuvé par Dieu.

Tout doit être écrit dans votre accord commercial...

Je n'ai pas regardé votre script, mais par exemple, Alpari élargit le spread sur les nouvelles (avant le week-end).



Je vais donc écrire un EA avec toutes les données possibles sur ma société de courtage et mon compte. A n'importe quel mouvement, l'alerte apparaîtra immédiatement.

Et je ne trouve pas le nombre limite d'ordres que je suis autorisé à placer dans ma société de courtage. Pourquoi devrais-je simplement placer 1000 ordres en attente et les supprimer automatiquement lorsque la marge est atteinte ?

 
rosomah:


1. je vais écrire un conseiller dans lequel je vais entrer toutes les données possibles sur la société de courtage et le compte. A n'importe quel mouvement, l'alerte apparaîtra immédiatement.

Je n'arrive pas à trouver le nombre limite d'ordres que je pourrai passer dans ma société de courtage. Pourquoi devrais-je simplement imputer 1000 ordres en attente, puis les supprimer automatiquement lorsque la limite est trouvée ?

1) L'alerte ne sert à rien. Vous devez entrer ces paramètres d'environnement dans la section du code qui est responsable de l'exécution des critères de transaction, et si l'un de ces paramètres dépasse sa valeur maximale admissible (vous l'avez définie), vous devez alors prendre une décision appropriée (par exemple, rejeter une transaction... - effectuer une opération de transaction).

2. Non. Vous ne pouvez pas faire cela, IMHO - lisez les règles et les conditions commerciales. Si ce n'est pas le cas, appelez le support technique et les chefs locaux pour TOUTES les questions de ce type sur votre type de compte de trading.

 

Bonjour.

J'ai travaillé sur ce code toute la journée - il donne l'erreur 131. Le code doit passer en revue tous les ordres au marché et, à chaque tour du même cycle, relire le volume des ordres ouverts pour le symbole de l'ordre sélectionné. Si les volumes des positions d'achat et de vente pour un symbole sont différents, un ordre de blocage est ouvert pour le volume restant.

     int i;
     int ii;
     string SMB="";
     double Price=0;
     double PriceAsk=0;
     double PriceBid=0;
     double SchBuyLotsSMB=0;
     double SchSellLotsSMB=0;
     double MarketLotSMB=0;
     for (i=OrdersTotal()-1;i>=0;i--)
      {
       if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         Alert ("Ошибка ",GetLastError()," выбора ордера!");
         Print ("Ошибка ",GetLastError()," выбора ордера!");
        }
       else
        {
         SMB=OrderSymbol();
         PriceAsk=MarketInfo(SMB,MODE_ASK);
         PriceBid=MarketInfo(SMB,MODE_BID);
         for (ii=OrdersTotal()-1;ii>=0;ii--)
          {
           if (!OrderSelect(ii, SELECT_BY_POS, MODE_TRADES))
            {
             Alert ("Ошибка ",GetLastError()," выбора ордера!");
             Print ("Ошибка ",GetLastError()," выбора ордера!");
            }
           else
            {
             if(OrderSymbol()==SMB)
              {
               if(OrderType()==OP_BUY)
                {
                 SchBuyLotsSMB=SchBuyLotsSMB+OrderLots();
                }
               if(OrderType()==OP_SELL)
                {
                 SchSellLotsSMB=SchSellLotsSMB+OrderLots();
                }
              }
            }
          }
         MarketLotSMB=SchBuyLotsSMB-SchSellLotsSMB;
         if (MarketLotSMB<0)
          {
           MarketLotSMB=MathAbs(MarketLotSMB);
           Price=PriceAsk;
           OPENORDER ("Buy",SMB,MarketLotSMB,Price);
          }
         else
          {
           if (MarketLotSMB>0)
           Price=PriceBid;
           OPENORDER ("Sell",SMB,MarketLotSMB,Price);
          }            
        }
       SMB="";
       Price=0;
       PriceAsk=0;
       PriceBid=0;
       SchBuyLotsSMB=0;
       SchSellLotsSMB=0;
       MarketLotSMB=0;        
      }

Veuillez m'aider à trouver la raison. 131 - J'ai lu que cela avait à voir avec une erreur de recherche de volume. Mais je ne le vois pas.

Merci d'avance pour la réponse.

 
TarasBY:
Vous utilisez une boucle étrange dans la boucle d'ordre, MAIS c'est le droit de l'auteur, alors mettez à zéro les lectures de lots totaux (SchBuyLotsSMB et SchSellLotsSMB) avant la deuxième boucle.
Donc je les mets à zéro.
 
nemo811:

Bonjour.

J'ai travaillé sur ce code toute la journée - il donne l'erreur 131. Le code doit passer en revue tous les ordres au marché et, à chaque tour du même cycle, relire le volume des ordres ouverts pour le symbole de l'ordre sélectionné. Si les volumes des positions d'achat et de vente pour un symbole sont différents, un ordre de blocage est ouvert pour le volume restant.

Veuillez m'aider à trouver la raison. 131 - J'ai lu que cela avait à voir avec une erreur de recherche de volume. Mais je ne le vois pas.

Merci d'avance pour la réponse.


Où se situe le glissement ? C'est peut-être la raison !
 
A propos, le code fonctionne correctement si les ordres sont ouverts pour un symbole, et l'EA lui-même est exécuté sur ce symbole. Si des ordres sont ouverts pour 2 paires ou plus, ou si l'EA fonctionne sur un symbole pour lequel il n'y a pas d'ordres, il y a une erreur.
 
borilunad:

Où se situe le glissement ? C'est peut-être la raison !

Qu'est-ce que ça veut dire ?

Sleep (1000);

?

J'ai essayé - ça ne marche pas.

 
nemo811:
C'est comme ça que je les ai remis à zéro.
Je ne l'ai pas remarqué tout de suite. En option (je le ferais obligatoirement), rendez la normalisation de la valeur du lot passée à la fonction token.
 
TarasBY:
Je ne l'ai pas remarqué tout de suite. En option (je le ferais nécessairement), faire la normalisation de la valeur du lot passée à la fonction token.
Il y a eu une telle pensée. Je vais l'essayer maintenant. Merci.