RogozaIV: Desculpe a pergunta muito simples, como fechar uma posição aberta? mql4 tem a função OrderClose(), mas como o faço aqui?
Em mql5, é necessário abrir uma posição oposta, que pode ser vista claramente na aba do Histórico do terminal. A forma mais fácil é utilizar a classe CTrade da biblioteca padrão.
Estou a preparar um indicador para ser chamado na EA.
Quero enviar um buffer do indicador.
O resultado é o valor int vinculado à barra.
A tarefa é passar uma matriz bidimensional do indicador para um consultor especializado, não consigo perceber como o fazer.
Eu chamo-lhe no EA
1. Lembre-se que no INDICADOR o tampão indicador padrão com índice "0" corresponde à barra mais à esquerda no gráfico.
2. O Expert Advisor não tem comando "SetIndexBuffer".
3. iCustom está a criar um indicador personalizado, não um pedido de buffer (por conseguinte, tudo deve ser escrito explicitamente, e não ",0,1"). No seu caso, pode utilizar este formulário
//--- create handle of the indicator TopqwResetLastError();
handle_Topqw=iCustom(Symbol(),Period(),"Topqw",PRICE_CLOSE);
//--- if the handle is not created if(handle_Topqw==INVALID_HANDLE)
{
//--- tell about the failure and output the error code PrintFormat("Failed to create handle of the Topqw indicator for the symbol %s/%s, error code %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped early return(INIT_FAILED);
}
4. O CopyBuffer parece estar escrito correctamente.
5. A matriz bidimensional não pode ser passada - fazer dois amortecedores de arrays indicadores.
1. Lembre-se de que no INDICADOR, por defeito, o tampão indicador com índice "0" corresponde à barra mais à esquerda no gráfico.
2. Não há nenhum comando "SetIndexBuffer" no EA.
3. iCustom está a criar um indicador personalizado, não um pedido de buffer (por conseguinte, tudo deve ser escrito explicitamente, e não ",0,1"). No seu caso, pode utilizar este formulário
4. O CopyBuffer parece estar escrito correctamente.
5. Não se pode passar uma matriz bidimensional - fazer dois amortecedores de arrays indicadores.
Agradeço a correcção, mas não compreendo, se eu fixar explicitamente a transferência de matrizes, como é formalizada? Onde especifico que preciso de extrair duas matrizes?
MA_handle=iCustom(Symbol(),Period(),"TopFidCounselor",per,bar); per,bar - же массивы, а данные должны быть imput,
в индикаторе записываю в массивы
SetIndexBuffer(0,per,INDICATOR_CALCULATIONS);
SetIndexBuffer(1,bar,INDICATOR_CALCULATIONS);
если я сделаю такую запись
intOnCalculate(
...
{
//--------------------------------------------------------------
for ( int i = 0; i < rates_total; i ++ ) per[i] = price[i]; -
//--------------------------------------------------------------
ТО СОВЕТНИК РАБОТАЕТ БЕЗ ОШИБКИ
а если такую
//----------------------------------------------------------------
for(int b=1; b<200; b++) //отбор по х-
{-
for(int p=1; p<200; p++) // отбор по у-
{-
if(arrayZ[6][p][b]>0||arrayZ[6][p][b]<0)-
{-
per[b]=p;-
bar[b]=b;-
}-
}-
}-
//----------------------------------------------------------------
ТО ОШИБКА код 4002
Já procurei noIndicatorCreate(), poderia por favor dizer-me como, caso contrário demorarei semanas a perceber, e já tenho tão pouco para terminar o bloco de pensamento. Tenho de ir brevemente à taiga para passar o Verão com abelhas à procura de alimentos, por isso quero verificar a ideia antes da partida, para não ter ilusões.
só que não é claro onde escrever a matriz a ser extraída?
O arrayper é declarado no EA, no procedimento em que se faz a cópia. Deve ser uma matriz dinâmica (declarada como [] - sem especificar a dimensionalidade).
Desculpe a pergunta muito simples, como fechar uma posição aberta? mql4 tem a função OrderClose(), mas como o faço aqui?
Em mql5, é necessário abrir uma posição oposta, que pode ser vista claramente na aba do Histórico do terminal. A forma mais fácil é utilizar a classe CTrade da biblioteca padrão.
Cavalheiros, por favor digam-me onde está o erro.
Estou a preparar um indicador para ser chamado na EA.
Quero enviar um buffer do indicador.
O resultado é o valor int vinculado à barra.
A tarefa é passar uma matriz bidimensional do indicador para um consultor especializado, não consigo perceber como o fazer.
Por isso, chamo-lhe no EA
Cavalheiros, por favor digam-me onde está o erro.
Estou a preparar um indicador para ser chamado na EA.
Quero enviar um buffer do indicador.
O resultado é o valor int vinculado à barra.
A tarefa é passar uma matriz bidimensional do indicador para um consultor especializado, não consigo perceber como o fazer.
Eu chamo-lhe no EA
1. Lembre-se que no INDICADOR o tampão indicador padrão com índice "0" corresponde à barra mais à esquerda no gráfico.
2. O Expert Advisor não tem comando "SetIndexBuffer".
3. iCustom está a criar um indicador personalizado, não um pedido de buffer (por conseguinte, tudo deve ser escrito explicitamente, e não ",0,1"). No seu caso, pode utilizar este formulário
4. O CopyBuffer parece estar escrito correctamente.
5. A matriz bidimensional não pode ser passada - fazer dois amortecedores de arrays indicadores.
1. Lembre-se de que no INDICADOR, por defeito, o tampão indicador com índice "0" corresponde à barra mais à esquerda no gráfico.
2. Não há nenhum comando "SetIndexBuffer" no EA.
3. iCustom está a criar um indicador personalizado, não um pedido de buffer (por conseguinte, tudo deve ser escrito explicitamente, e não ",0,1"). No seu caso, pode utilizar este formulário
4. O CopyBuffer parece estar escrito correctamente.
5. Não se pode passar uma matriz bidimensional - fazer dois amortecedores de arrays indicadores.
Já procurei noIndicatorCreate(), poderia por favor dizer-me como, caso contrário demorarei semanas a perceber, e já tenho tão pouco para terminar o bloco de pensamento. Tenho de ir brevemente à taiga para passar o Verão com abelhas à procura de alimentos, por isso quero verificar a ideia antes da partida, para não ter ilusões.Agradeço a correcção, mas não compreendo, se eu fixar explicitamente a transferência de matrizes, como é formalizada? Onde especifico que preciso de extrair duas matrizes?
O que uso no indicadorINDICADOR_CALCULATIONS é correcto?
O erro 4002 está resolvido.
só que não é claro onde escrever a matriz a ser extraída?
O erro 4002 está resolvido.
só que não é claro onde escrever a matriz a ser extraída?
O arrayper é declarado no EA, no procedimento em que se faz a cópia. Deve ser uma matriz dinâmica (declarada como [] - sem especificar a dimensionalidade).