Erros, bugs, perguntas - página 356

 
Im_hungry:

Escrevi algo semelhante a isto, mas deve rotular as matrizes de forma diferente - (é pouco provável que ajude, mas pelo menos

isto é melhor). alterá-lo:

nestas linhas.

Também mudam:

a isso.

Não é assim. Há várias construções atrás, os antigos métodos Type() nas classes CPositionInfo, COrderInfo e CDealInfo da biblioteca padrão foram substituídos pelos métodos PositionType(), OrderType() e DealType(). Portanto, estas funções devem ser corrigidas em programas MQL5 previamente escritos, caso contrário não funcionarão correctamente.

Eu reescreveria o vosso código desta forma:

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>

input int TriX_PARAM=14;
input int TriX_PARAM_Close=50;

double TriX[];
double TriX_Close[];
int TriXHandle;
int TriXHandle_Close;
CTrade mytrade;
CPositionInfo myposition;
CSymbolInfo mysymbol;
COrderInfo myorder;
int OnInit()
  {

   TriXHandle=iTriX(NULL,PERIOD_CURRENT,TriX_PARAM,PRICE_WEIGHTED);
   TriXHandle_Close=iTriX(Symbol(),PERIOD_CURRENT,TriX_PARAM_Close,PRICE_WEIGHTED);
   ArraySetAsSeries(TriX_Close,true);
   ArraySetAsSeries(TriX,true);
   return(0);
  }

void OnTick()
  {
   if(myposition.Select(_Symbol))
    { 
     CopyBuffer(TriXHandle_Close,0,0,4,TriX_Close);
     if(myposition.PositionType()==POSITION_TYPE_BUY) 
//Закрываем позицию
     {
      if(TriX_Close[1]<TriX_Close[2] && TriX_Close[2]>TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
     } 
     else  
      if(TriX_Close[1]>TriX_Close[2] && TriX_Close[2]<TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
    }
   else
//Открываем позицию
     {
      CopyBuffer(TriXHandle,0,0,4,TriX);
      if(TriX[1]>TriX[2] && TriX[2]<TriX[3]) mytrade.Buy(0.1);
      if(TriX[1]<TriX[2] && TriX[2]>TriX[3]) mytrade.Sell(0.1);
     }
  }
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Rosh:
Todas as janelas dos gráficos são numeradas a partir de zero. 0 - janela do gráfico principal, 1 - primeira janela indicadora, que é mostrada numa janela separada. E assim por diante.

Não há perguntas sobre isso! Mas onde estão os valores mínimo e máximo, e porque é que só aparecem depois das manipulações com o gráfico?
 
KffAlex:
Não há dúvida nenhuma sobre isso! Mas onde estão os valores mínimos e máximos, e porque é que eles só aparecem depois de manipular o gráfico?
É melhor escrever para o balcão de atendimento. Isto é muito provavelmente um insecto.
 

Por favor, esclareça-me sobre o significado do erro

internal error #108             0       0

ao compilar o guião?

 
alsu:

Por favor, esclareça-me sobre o significado do erro

ao compilar o guião?

Tanto quanto sei, é

108 Nome impróprio para #define

 
Interesting:

Tanto quanto sei.

108 Nome impróprio para #define

é porque não há definições ou inlúdios no guião.

 
 
alsu:

a questão é que não existem definições ou inlúdios no guião.

O guião contém ambos
#incluir
и
#define
 
alsu:

Depois, transferência bloco a bloco do guião para outro normalmente compilado. e deparar-se-á com uma linha defeituosa.

Escreva de volta o que foi.

 
sergeev:

depois transferência bloco a bloco do guião para outro guião normalmente compilado. e deparar-se-á com uma linha defeituosa.

Por favor, digam-me o que é.

Tornou-o simples.

Eu comentei /* */ tudo OnStart() corpo da função - o erro permaneceu. Incluindo, depois de reiniciar a máquina.

Repito, sem inlúdios ou definições, nada a nível global, incluindo variáveis externas. Eu ainda não quero reinstalar o terminal))

Desenvolvedores, HA!!! O que significa erro interno #108?????