Erros, bugs, perguntas - página 72

 
k47:

Sim, há de facto um bug aqui,DoubleToString foi definido por engano. Portanto, o problema permanece apenas na documentação.

A propósito, a documentação não corresponde à realidade da classe CAccountInfo também no que diz respeito aos métodos de acesso às propriedades por identificador.

O InfoString() é definido comoInfoString(...)duplo e, ao mesmo tempo

O valor de retorno é

verdadeiro - se bem sucedido, falso - se não conseguir recuperar o valor da propriedade.

Esta é dificilmente a forma como o tipo é especificado. Muito provavelmente, o valor é devolvido de duas maneiras - via retorno e via parâmetro por referência. Isto também é confirmado pelo facto de que o método devolve cadeia quando utilizado:

O mesmo é válido para aduplaInfoInteger() que na realidade retorna longa em vez de bool, e a duplaInfoDouble() que também é escrita
verdadeiro - se bem sucedido, falso - se mal sucedido na recuperação do valor do bem.

Embora mais uma vez, como pode ver na imagem, apenas um parâmetro é definido, pelo que a referência está fora de questão....

Obrigado pela mensagem. A biblioteca ainda está a mudar, e aparentemente nem sempre temos tempo para fazer alterações à documentação linguística. Vamos descobrir e actualizá-la.
 
Interesting:

Estranho comportamento do testador de estratégias...


No build 298, detectámos um comportamento estranho do testador de estratégia após o cancelamento do processo de teste (não o tinha notado antes).

Resultado

O botão "Cancelar" torna-se um botão "Iniciar", os testes são interrompidos. Tudo parecia estar bem, mas não - os parâmetros permanecem cinzentos e é impossível editá-los.


Obrigado. Reproduzido e corrigido
 

Boa tarde! pode dizer-me porque é que a paragem para deficientes físicos é precipitada?

Basicamente é um código de transferência sem perdas... Penso que muitos o acharão útil...

{ int  LevelWLoss  = 10;
  int PosTotal=PositionsTotal();
   for(int i=PosTotal-1; i>=0; i--)
     {
                 MqlTick lasttick;
            SymbolInfoTick(Symbol(),lasttick);
      if (PositionGetInteger(POSITION_TYPE)==0) {
        if (PositionGetDouble(POSITION_SL)-PositionGetDouble(POSITION_PRICE_OPEN)<LevelWLoss*Point()) {
          if (lasttick.bid-PositionGetDouble(POSITION_PRICE_OPEN)>LevelProfit*Point()) {
         
          MqlTradeRequest BezubModif;
                  BezubModif.action= TRADE_ACTION_SLTP;
                  BezubModif.symbol= Symbol();
                  BezubModif.sl = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN)+LevelWLoss*Point(),_Digits);
                  BezubModif.tp = PositionGetDouble(POSITION_TP);
                  BezubModif.deviation=3;
          MqlTradeResult BezubModifResult;
                  OrderSend(BezubModif,BezubModifResult);                                                                                       
          }
        }
      }
      if (PositionGetInteger(POSITION_TYPE)==1) {
        if (PositionGetDouble(POSITION_SL)==0 || PositionGetDouble(POSITION_PRICE_OPEN)-PositionGetDouble(POSITION_SL)<LevelWLoss*Point()) {
          if (PositionGetDouble(POSITION_PRICE_OPEN)-lasttick.ask>LevelProfit*Point()) {

            MqlTradeRequest BezubModif;
                  BezubModif.action= TRADE_ACTION_SLTP;
                  BezubModif.symbol= Symbol();
                  BezubModif.sl = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN)-LevelWLoss*Point(),_Digits);
                  BezubModif.tp = PositionGetDouble(POSITION_TP);
                  BezubModif.deviation=3;
            MqlTradeResult BezubModifResult;
                  OrderSend(BezubModif,BezubModifResult);                     
          }
        }
      }
    }
  }
 
DEDMOROZ:

Boa tarde! Pode dizer-me porque é que o pé deficiente é imprudente?


Não consegue editar correctamente o seu post? Há uma função especial de inserção de código, como...
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 

Desenvolvedores - Onde arranjam tal erva daninha?

O servidor deve estar tão "pedrado" para declarar as posições de SELL como POSITION_TYPE_BUY (0), Comprar deveser POSITION_TYPE_SELL (1)...


Refiro-me à pergunta acima e como funciona este código:

if (PositionGetInteger(POSITION_TYPE)==0)

PS

DEDMOROZ, já tentou usar identificadores?

Além disso, é útil dividir o código de grandes blocos em partes (OOP está a chegar)...

 
Interesting:

Desenvolvedores - Onde arranjam tal erva daninha?

O servidor deve estar tão "pedrado" para declarar as posições de SELL como POSITION_TYPE_BUY (0), Comprar deveser POSITION_TYPE_SELL (1)...


Porque existem outras enumerações com ORDER_TYPE_BUY, DEAL_TYPE_SELL, BOOK_TYPE_BUY

 
stringo:

Porque existem outras enumerações com ORDER_TYPE_BUY, DEAL_TYPE_SELL, BOOK_TYPE_BUY

E o que é que o PositionGetInteger(POSITION_TYPE) tem a ver com isto? E o que é que POSITION_TYPE_BUY e POSITION_TYPE_SELL têm a ver com isso ?


Um exemplo simples:

Tenho agora uma posição de Venda Aberta em EUR (aberta a partir do mercado). Vejo-o como Vender, mas o meu Conselheiro Especialista vê-o como Comprar (0).

Abro a ajuda para PositionGetInteger(POSITION_TYPE) e vejo que o servidor obviamente confunde algo...


PS

O homem vê uma posição aberta, o homem vê a ajuda e faz tudo correctamente (na sua opinião), mas o servidor tem, como sempre, uma opinião "especial"...

 
Interesting:

Um exemplo simples:

Tenho agora uma posição de Venda Aberta em EUR (aberta a partir do mercado). Vejo-o como Vender, mas a EA vê-o como Comprar (0).

Abro a ajuda para PositionGetInteger(POSITION_TYPE) e vejo que o servidor está obviamente confuso com alguma coisa...


PS

O homem vê a posição aberta, o homem vê a ajuda e faz tudo correctamente (na sua opinião), mas o servidor tem, como sempre, uma opinião "especial"...

Antes de ver uma pose aberta, deve primeiro chamar a função PositionSelect
 
stringo:
Antes de ver uma pose aberta, deve primeiro chamar a função PositionSelect

Então peço desculpa, hoje tive tempo para fumar...

 
DEDMOROZ:

Boa tarde! pode dizer-me porque é que a paragem para deficientes físicos é precipitada?

Basicamente é um código de transferência sem perdas... Penso que muitos o acharão útil...


   for(int i=PosTotal-1; i>=0; i--)//перебор позиций имеет смысл, если перенос в безубыток мультивалютный
     {//где-то тут должен быть выбор позиции, которую будем допрашивать :)
                 MqlTick lasttick;
            SymbolInfoTick(Symbol(),lasttick);//ask,bid всегда берутся с текущего символа.
ou não precisa do excesso, ou precisa de pedir, licite no símbolo da pose