Erreurs, bugs, questions - page 2734

 

Bonjour à tous, je voudrais vous poser la question suivante

Je suis un débutant, peut-être que quelqu'un pourra m'expliquer

J'ai ouvert un compte de démonstration avec différents traders, pas seulement en Russie, je me suis heurté à un problème : je ne peux pas placer de lots sur le marché, c'est-à-dire que je peux mais seulement au prix du marché ! Je ne peux mettre des lots qu'au prix du marché !

Probablement que je ne sais pas quelque chose !

Je peux aller n'importe où dans le marché et ils prendront ma commande de toute façon. Mais je ne peux pas le faire sur les terminaux de change, je ne peux qu'acheter au prix du marché avec un écart énorme !

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
, то позиции по каждому символу разрешается закрывать только в том порядке, в котором они были открыты — сначала самую старую, затем более новую и т.д. При попытке закрыть позиции в ином порядке будет получена ошибка. Уровень залоговых средств, при достижении которого происходит принудительное закрытие самой убыточной позиции (Stop Out...
 
le site web ne fonctionne pas
 
Vladimir Pastushak:
le psc du site ne fonctionne pas
.
 
Alexey Viktorov:
.

Ça marche maintenant.

 
Renat Fatkhullin:
Les tests doivent être effectués correctement et très soigneusement.

aucun test n'était prévu, juste pour évaluer les capacités

OK, considérons que de cette manière fleurie, vous avez refusé, j'ai offert les sources VS ci-dessus

 

Bonjour !

Fonction de queue.

Pouvez-vous me dire ce qui ne va pas, j'obtiens l'erreur 4756 dans le testeur de stratégie. En l'exécutant dans le script, cela fonctionne.

int Tralling(int PointsTral=200)
  {
   MqlTradeRequest Request;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols[]= {""};
   double SymbPt,sl,tp,
          PriceOpen[]= {0};
   i=0;
   PosTot= PositionsTotal();
   if(PosTot>0)
     {
      while(i<PosTot)
        {
         Symbols[i] = PositionGetSymbol(i);
         digits=(int)SymbolInfoInteger(Symbols[i],SYMBOL_DIGITS);
         if(PositionSelect(Symbols[i]))
           {
            PriceOpen[i] = PositionGetDouble(POSITION_PRICE_OPEN);
            SymbPt = SymbolInfoDouble(Symbols[i],SYMBOL_POINT);
            if(PositionGetInteger(POSITION_TYPE) == 0)
              {
               if(SymbolInfoDouble(Symbols[i],SYMBOL_BID) >= PriceOpen[i]+(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols[i],SYMBOL_BID)>PositionGetDouble(POSITION_SL)+(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols[i],SYMBOL_BID)-(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Request.action=TRADE_ACTION_SLTP;
                     Request.symbol = Symbols[i];
                     Request.sl=NormalizeDouble(sl,digits);
                     Request.tp=NormalizeDouble(tp,digits);
                     Request.position=PositionGetInteger(POSITION_TICKET);
                     if(!OrderSend(Request,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

            if(PositionGetInteger(POSITION_TYPE) == 1)
              {
               if(SymbolInfoDouble(Symbols[i],SYMBOL_ASK) <= PriceOpen[i]-(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols[i],SYMBOL_ASK)<PositionGetDouble(POSITION_SL)-(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols[i],SYMBOL_ASK)+(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Request.action=TRADE_ACTION_SLTP;
                     Request.symbol = Symbols[i];
                     Request.sl=NormalizeDouble(sl,digits);
                     Request.tp=NormalizeDouble(tp,digits);
                     Request.position=PositionGetInteger(POSITION_TICKET);
                     if(!OrderSend(Request,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

           }
         else
           {
            Alert("Не удалось выделить оредер по символу. ", Symbols[i], " Ошибка ", GetLastError());
           }
         i++;
        }
     }
   return (1);
  }

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Тикет позиции. Уникальное число, которое присваивается каждой вновь открытой позиции. Как правило, соответствует тикету ордера, в результате которого она была открыта, за исключением случаев изменения тикета в результате служебных операций на сервере. Например, начисления свопов переоткрытием позиции. Для нахождения ордера, которым была открыта...
 

Bonjour !

Je ne trouve pas l'erreur. C'est un arrêt de Tralling. Si je le lance sur le graphique avec le script, ça marche. Dans le testeur de stratégie, il renvoie l'erreur 4756 (Cannot send to server).

Aidez-moi, s'il vous plaît !

int Tralling(int PointsTral=200)
  {
   MqlTradeRequest Reques;
   MqlTradeResult Result;
   int PosTot, i, digits;
   string Symbols;
   double SymbPt,sl,tp,
          PriceOpen;
   i=0;
   PosTot= PositionsTotal();
   if(PosTot>0)
     {
      while(i<PosTot)
        {
         Symbols = PositionGetSymbol(i);
         digits=(int)SymbolInfoInteger(Symbols,SYMBOL_DIGITS);
         if(PositionSelect(Symbols))
           {
            PriceOpen = PositionGetDouble(POSITION_PRICE_OPEN);
            SymbPt = SymbolInfoDouble(Symbols,SYMBOL_POINT);
            if(PositionGetInteger(POSITION_TYPE) == 0)
              {
               if(SymbolInfoDouble(Symbols,SYMBOL_BID) >= PriceOpen+(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols,SYMBOL_BID)>PositionGetDouble(POSITION_SL)+(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols,SYMBOL_BID)-(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Reques.action=TRADE_ACTION_SLTP;
                     Reques.symbol = Symbols;
                     Reques.position=PositionGetInteger(POSITION_TICKET);
                     Reques.sl=NormalizeDouble(sl,digits);
                     Reques.tp=NormalizeDouble(tp,digits);
                     if(!OrderSend(Reques,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

            if(PositionGetInteger(POSITION_TYPE) == 1)
              {
               if(SymbolInfoDouble(Symbols,SYMBOL_ASK) <= PriceOpen-(SymbPt*PointsTral))
                 {
                  if(SymbolInfoDouble(Symbols,SYMBOL_ASK)<PositionGetDouble(POSITION_SL)-(SymbPt*PointsTral))
                    {
                     sl=SymbolInfoDouble(Symbols,SYMBOL_ASK)+(SymbPt*PointsTral);
                     tp=PositionGetDouble(POSITION_TP);
                     Reques.action=TRADE_ACTION_SLTP;
                     Reques.symbol = Symbols;
                     Reques.position=PositionGetInteger(POSITION_TICKET);
                     Reques.sl=NormalizeDouble(sl,digits);
                     Reques.tp=NormalizeDouble(tp,digits);
                     if(!OrderSend(Reques,Result))
                        Alert("Ошибка Треллинга ",GetLastError());
                    }
                 }
              }

           }
         else
           {
            Alert("Не удалось выделить оредер по символу. ", Symbols[i], " Ошибка ", GetLastError());
           }
         i++;
        }
     }

   return (1);
  }
 
Igor Makanu:

aucun test n'était prévu, juste pour évaluer les capacités

OK, considérons que de cette manière fleurie, vous avez refusé, j'ai offert les sources VS ci-dessus

Vous avez fait une déclaration exceptionnelle et n'avez pas réussi à la prouver. Ce n'est pas non plus la première fois que vous postez un dll, ce qui est interdit.

Je ne vois pas le code source pour la reproduction.

 
Renat Fatkhullin:

Vous avez fait une déclaration exceptionnelle et n'avez pas réussi à la prouver. De plus, ce n'est pas la première fois que vous postez un dll, ce qui est interdit.

Je ne vois pas le code source pour la reproduction.

Que montre l'exclusivité de la déclaration ? Tout ce que je vois, c'est que la mesure des performances de l'ancien terminal a donné de très bons résultats, imho, comme on dit - une bonne chose faite depuis des lustres.

Je l'ai vérifié sur PC aujourd'hui et a obtenu les mêmes résultats que MT4/MT5, vérifié sur l'ordinateur portable à nouveau, aussi je n'ai pas vu de différence, la forte probabilité que dans l'arrière-plan de certains service Win10 "mâché le lecteur", je n'ai pas configuré le temps d'exécution sur l'ordinateur portable, Win configuré le temps de nuit par défaut.

La nuit, il y avait encore le désir de comprendre ce que la différence, aujourd'hui sur un principe - laissez-le travailler, je ne vois pas le code source n'a pas de sens de faire des commentaires ou de couper des parties pour commencer la clarification de la situation ou la discussion, je ne veux pas le faire.


des bugs de la nouvelle construction :

l'information n'est pas correcte dans le journal du terminal :

2020.05.06 19:03:03.895 Terminal Windows 10 build 18363, Intel Core i3 M 380 @ 2.53GHz, 0 / 2 Go de mémoire, 149 / 237 Go de disque, IE 11, UAC, GMT+4

Win free 920 Mo sur 2,97 Go dans le gestionnaire de tâches, les versions précédentes avaient des informations système plus correctes.

 
J'ai une question, comment puis-je trouver des signaux gratuits maintenant ? Je les trouve périodiquement manuellement, mais la page des signaux ne montre que les signaux payants. Le filtrage par valeur ne me permet pas de les trouver.