[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 332
first_may: Boa noite. Você poderia me dizer se há algum indicador de perfil de mercado? E também uma documentação ou descrição de como utilizá-los? Pelo menos os sinais mais simples para entrar no mercado usando indicadores de perfil de mercado?
if ( торговые условия)
{
Opn_S=true;
}
if ( торговые условия)
{
Opn_B=true;
}
if ( торговые условия)
{
Cls_S=true;
}
elseif ( торговые условия)
{
Cls_B=true;
}
Depois deste código, preciso de um código que aja separadamente do código acima.
Ou seja, a posição será aberta e mantida por outros critérios estabelecidos, e quando eles desaparecerem para sair da posição e começar a agir de acordo com as condições comerciais originais (código acima).
A essência da estratégia é a seguinte: duas barras não tocam na compra mínima da EMA, duas barras não tocam na venda máxima da EMA.
Que código é necessário para implementá-lo.
Estou tentando colocar isto em critérios (não tenho certeza se este código é uma boa solução):
elsefor(i=0;i<=Quant_Bars-1;i++)
if (Low[i]> MA_3_t)
{
Opn_B=true;
}
return(false);
Passa sem erros, mas quando eu adiciono um critério para vendê-lo dá erros - este é um problema.
Outro - como cortar o cumprimento de um critério que está acima?
A terceira é definir os parâmetros do EMA pelo número de barras diárias (cada barra deve se referir ao EMA correspondente ao seu dia).
Artyom e Boris, obrigado por "mastigar" a minha pergunta. Eu tenho períodos em que posso ficar preso a coisas bastante simples, como foi o caso desta vez...
Agora há uma nova pergunta.
Adicionei à função que calcula a quantidade de ordens abertas t, procura ordens de um tipo especificado com lucros especificados e compara seus lucros com algum valor especificado (atualmente 0). Além disso, se não houver ordens abertas, 2 bandeiras com valor Verdadeiro são retornadas com a função FindOrders() parâmetros, significa que você pode enviar uma ordem, mas se houver ordens, o lucro é verificado para garantir que seja maior que o valor definido, se for menor que o valor definido, 2 bandeiras com valor Falso são retornadas com a função FindOrders() parâmetros, portanto, quando houver ordens perdidas em alguma direção, não haverá investimentos na direção perdida.
//+-------------------------------------------------------------------------------------+//| Поиск своих ордеров |//+-------------------------------------------------------------------------------------+int FindOrders(bool& long, bool& short)
{
int t, total = OrdersTotal() - 1;
for (int i=total; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != i_magic) continue;
{
if (OrderType() < 0) // Ордера отсуствуют, значит можно послать ордер..
{
long = true; // .. на покупкуshort = true; // .. на продажу
}
if (OrderType() == OP_BUY) // Найден ордер типа OP_BUY
{
if (OrderProfit() > 0) // Если профит ордера выше заданного значения, то..long = true; // .. разрешена покупка
}
if (OrderType() == OP_SELL) // Найден ордер типа OP_SELL
{
if (OrderProfit() > 0) // Если профит ордера выше заданного значения, то..short = true; // .. разрешена продажа
}
t++;
}
}
return (t);
}
Depois disso, chamo a função FindOrders() na função de sinal:
//+-------------------------------------------------------------------------------------+//| Получаем общий торговый сигнал |//+-------------------------------------------------------------------------------------+int GetGeneralSignal()
{
boolshort = false,
long = false;
if (FindOrders(short, long) > 3)
return (SIGNAL_NO);
if (long == false)
return (SIGNAL_NO);
if (GetRSI(1) < i_RSIToUpLimit)
if (GetRSI(0) > i_RSIToUpLimit)
{
return (SIGNAL_BUY);
}
if (short == true)
return (SIGNAL_NO);
if (GetRSI(1) > i_RSIToDnLimit)
if (GetRSI(0) < i_RSIToDnLimit)
{
return (SIGNAL_SELL);
}
return (SIGNAL_NO);
}
As ordens foram abertas. A lógica parece estar correta. Talvez, você pode ver onde eu cometi um erro?
Entendo que tudo pode ser feito mais facilmente com uma função separada e eu posso fazer isso. Mas eu quero entender porque não funciona nesta versão.
Boa noite. Você poderia me dizer se há algum indicador de perfil de mercado? E também uma documentação ou descrição de como utilizá-los? Pelo menos os sinais mais simples para entrar no mercado usando indicadores de perfil de mercado?
O que você quer dizer com perfil de mercado?
O que você entende por perfil de mercado?
Aqui está:
" Perfil demercado como forma de representar graficamente a aceitação ou rejeição de preços ao longo do tempo".
Encontrei o indicador http://fxcoder.ru/indicators/tpo
Mas não sei como tomar a decisão certa, por isso queria perguntar aos especialistas.
Aqui:
"Perfil de mercado como forma de representar graficamente a aceitação ou rejeição de preços ao longo do tempo".
Encontrei o indicador http://fxcoder.ru/indicators/tpo
Mas não sei como tomar a decisão certa, por isso queria perguntar aos especialistas.
Então você parece estar fazendo a pergunta errada. Esta linha é para um propósito diferente
Então, parece que você perguntou no lugar errado. Esta linha não é para esse fim.
Para onde eu posso ir?
Há também este indicador: https://www.mql5.com/ru/code/8115#20318
Como analisar isso? Esta pergunta não tem resposta aqui?
Olá a todos! Feliz 9 de maio! Dia da Vitória!
Os profissionais precisam de sua ajuda.
Depois deste código, preciso de um código que aja separadamente do código acima.
Ou seja, a posição será aberta e mantida por outros critérios estabelecidos, e quando eles desaparecerem para sair da posição e começar a agir de acordo com as condições comerciais originais (código acima).
A essência da estratégia é a seguinte: duas barras não tocam na compra mínima da EMA, duas barras não tocam na venda máxima da EMA.
Que código é necessário para implementá-lo.
Estou tentando colocar isto em critérios (não tenho certeza se este código é uma boa solução):
Passa sem erros, mas quando eu adiciono um critério para vendê-lo dá erros - este é um problema.
Outro - como cortar o cumprimento de um critério que está acima?
A terceira é definir os parâmetros do EMA pelo número de barras diárias (cada barra deve se referir ao EMA correspondente ao seu dia).
Para onde eu posso ir?
Há também este indicador: https://www.mql5.com/ru/code/8115#20318
Como analisar isso? Esta pergunta não tem resposta aqui?
É aí que você poderia fazer a pergunta
Pessoal, podem me dizer por que o nome de usuário e a senha não se registram... ou qualquer um que possa conhecer e aconselhar...
A mensagem "4032291" aparece: a conexão falhou (Sem conexão).
Ping é verificação - significa que há uma conexão. Caso contrário, por alguma razão, não há conexão.
E como usar este mql4 ?
É assim que você poderia fazer uma pergunta lá
Haverá uma resposta? A última entrada ali foi datada de 11.05.2010 00:44...
Será que eles responderão? A última entrada foi datada de 11.05.2010 00:44...
Artyom e Boris, obrigado por "mastigar" a minha pergunta. Eu tenho períodos em que posso ficar preso a coisas bastante simples, como foi o caso desta vez...
Agora há uma nova pergunta.
Adicionei à função que calcula a quantidade de ordens abertas t, procura ordens de um tipo especificado com lucros especificados e compara seus lucros com algum valor especificado (atualmente 0). Além disso, se não houver ordens abertas, 2 bandeiras com valor Verdadeiro são retornadas com a função FindOrders() parâmetros, significa que você pode enviar uma ordem, mas se houver ordens, o lucro é verificado para garantir que seja maior que o valor definido, se for menor que o valor definido, 2 bandeiras com valor Falso são retornadas com a função FindOrders() parâmetros, portanto, quando houver ordens perdidas em alguma direção, não haverá investimentos na direção perdida.
Depois disso, chamo a função FindOrders() na função de sinal:
As ordens foram abertas. A lógica parece estar correta. Talvez, você pode ver onde eu cometi um erro?
Entendo que tudo pode ser feito mais facilmente com uma função separada e eu posso fazer isso. Mas eu quero entender porque não funciona nesta versão.