Perguntas de um "boneco" - página 274

 
É apenas o fecho que não funciona?
 
Sim. E abre-se lindamente.
 

E tente inserir uma verificação de encomenda antes de OrderSend para verificar se a encomenda está correcta:

//---- Проверка торгового запроса на корректность
if(!OrderCheck(request,check))
{
 ("Ошибка проверки ордера OrderCheck(): ",ResultRetcodeDescription(check.retcode));
}



//+------------------------------------------------------------------+
//| возврат стрингового результата торговой операции по его коду     |
//+------------------------------------------------------------------+
string ResultRetcodeDescription(int retcode)
  {
   string str;
//----
   switch(retcode)
     {
      case TRADE_RETCODE_REQUOTE: str="Реквота"; break;
      case TRADE_RETCODE_REJECT: str="Запрос отвергнут"; break;
      case TRADE_RETCODE_CANCEL: str="Запрос отменен трейдером"; break;
      case TRADE_RETCODE_PLACED: str="Ордер размещен"; break;
      case TRADE_RETCODE_DONE: str="Заявка выполнена"; break;
      case TRADE_RETCODE_DONE_PARTIAL: str="Заявка выполнена частично"; break;
      case TRADE_RETCODE_ERROR: str="Ошибка обработки запроса"; break;
      case TRADE_RETCODE_TIMEOUT: str="Запрос отменен по истечению времени";break;
      case TRADE_RETCODE_INVALID: str="Неправильный запрос"; break;
      case TRADE_RETCODE_INVALID_VOLUME: str="Неправильный объем в запросе"; break;
      case TRADE_RETCODE_INVALID_PRICE: str="Неправильная цена в запросе"; break;
      case TRADE_RETCODE_INVALID_STOPS: str="Неправильные стопы в запросе"; break;
      case TRADE_RETCODE_TRADE_DISABLED: str="Торговля запрещена"; break;
      case TRADE_RETCODE_MARKET_CLOSED: str="Рынок закрыт"; break;
      case TRADE_RETCODE_NO_MONEY: str="Нет достаточных денежных средств для выполнения запроса"; break;
      case TRADE_RETCODE_PRICE_CHANGED: str="Цены изменились"; break;
      case TRADE_RETCODE_PRICE_OFF: str="Отсутствуют котировки для обработки запроса"; break;
      case TRADE_RETCODE_INVALID_EXPIRATION: str="Неверная дата истечения ордера в запросе"; break;
      case TRADE_RETCODE_ORDER_CHANGED: str="Состояние ордера изменилось"; break;
      case TRADE_RETCODE_TOO_MANY_REQUESTS: str="Слишком частые запросы"; break;
      case TRADE_RETCODE_NO_CHANGES: str="В запросе нет изменений"; break;
      case TRADE_RETCODE_SERVER_DISABLES_AT: str="Автотрейдинг запрещен сервером"; break;
      case TRADE_RETCODE_CLIENT_DISABLES_AT: str="Автотрейдинг запрещен клиентским терминалом"; break;
      case TRADE_RETCODE_LOCKED: str="Запрос заблокирован для обработки"; break;
      case TRADE_RETCODE_FROZEN: str="Ордер или позиция заморожены"; break;
      case TRADE_RETCODE_INVALID_FILL: str="Указан неподдерживаемый тип исполнения ордера по остатку "; break;
      case TRADE_RETCODE_CONNECTION: str="Нет соединения с торговым сервером"; break;
      case TRADE_RETCODE_ONLY_REAL: str="Операция разрешена только для реальных счетов"; break;
      case TRADE_RETCODE_LIMIT_ORDERS: str="Достигнут лимит на количество отложенных ордеров"; break;
      case TRADE_RETCODE_LIMIT_VOLUME: str="Достигнут лимит на объем ордеров и позиций для данного символа"; break;
      case TRADE_RETCODE_INVALID_ORDER: str="Выставляемый ордер имеет запрещенный или неверный тип"; break;
      case TRADE_RETCODE_POSITION_CLOSED: str="Операция с позицией невозможна, так как позиция отсутствует"; break;
      default: str="Неизвестный результат";
     }
//----
   return(str);
  }
 

Oh, e mais uma coisa: no procedimento de encerramento, não se esqueça de anular as estruturas antes de as preencher

ZeroMemory(tradeRequest);
ZeroMemory(tradeResult);


Depois de

SymbolInfoTick(symb, price);

estas duas linhas inseridas.

 
i_logic:

Oh, e mais uma coisa: no procedimento de encerramento, certifique-se de anular as estruturas antes de as encher


Depois de

inserir estas duas linhas.

não, tem de ANTES:

for(int i=PositionsTotal()-1;i>=0;i--)
    {
      ZeroMemory(tradeRequest);
      ZeroMemory(tradeResult);
      ZeroMemory(price);
      
      symb=PositionGetSymbol(i);
      PositionSelect(symb);
      SymbolInfoTick(symb, price);

ajudou. obrigado.

 

Olá, construção de uma grelha fibo numa EA

ObjectCreate(0, "Fibo",OBJ_FIBO,0,time2,price1)

Tudo funciona, mas agora quero obter o preço a 23,6%, não haverá uma função simples para este fim?

double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); Este dá 0,236, ou seja, não o preço mas o nível.

double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_PRICE,1); Este dá o preço ao nível 0 (ou ao nível 100).

Não consegui encontrar mais nada para além destes dois (OBJPROP_PRICE e OBJPROP_LEVELVALUE).

Pode dizer-me como é que este problema pode ser resolvido? Obrigado!

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
zhurkin:

Pode dizer-me como resolver este problema? Obrigado!

Existem apenas duas operações aritméticas. Multiplicação (0,236 multiplicado pela diferença entre os preços zero e do primeiro nível) e depois adição (adicionar o resultado da multiplicação ao preço do nível zero).

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - Документация по MQL5
 

Olá, obrigado pela resposta anterior!

Estou a usar iCustom(NULL,0, "Exemplos\\\\ZigZag",ExtDepth,ExtDeviation,ExtBackstep) Em geral estou a ligar um ziguezague regular. Tudo parece estar bem com os cálculos. Poderia aconselhar como permitir que a EA desenhe automaticamente este indicador ligado no gráfico? Neste momento tenho de adicionar manualmente o indicador ziguezague depois de executar a EA e definir os seus parâmetros como na EA! Obrigado.

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
zhurkin:

Olá, obrigado pela resposta anterior!

Estou a usar iCustom(NULL,0, "Exemplos\\\\ZigZag",ExtDepth,ExtDeviation,ExtBackstep) Em geral estou a ligar um ziguezague regular. Tudo parece estar bem com os cálculos. Poderia aconselhar como permitir que a EA desenhe automaticamente este indicador ligado no gráfico? Neste momento tenho de adicionar manualmente o indicador ziguezague depois de executar a EA e definir os seus parâmetros como na EA! Obrigado.

https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - Документация по MQL5
 

Comecei a estudar o OOP.

Tive um problema ao escrever um descendente de uma classe base, o compilador escreve - "'ХХХХХХ' - parâmetros errados contam".

Procurei a razão durante muito tempo, relendo artigos e livros de referência,

mas encontrei-o - a classe base tem um construtor, é um e paramétrico.

Também encontrei uma solução - sobrecarga da função de construtor com o construtor por defeito,

mas depois tenho de arrastar todos os parâmetros do construtor paramétrico da classe base para o construtor descendente para uma lógica correcta.

Existem outras formas?

Existe alguma forma, ao declarar uma classe descendente, de distribuir a quem o quê? Por exemplo: estes parâmetros para o construtor da classe base e estes parâmetros para que o descendente não se aborreça...

Razão: