Hi!
Nunca utilizou ST e TP
Por favor, esclareça.
Stop Loss e Take Profit são definidos em uma posição existente
Ou podemos definir estes parâmetros em uma ordem a ser definida, ou seja, quando a posição ainda não estiver aberta?
Se podemos especificar parâmetros em uma ordem, como devemos calcular SL e TP em uma ordem de mercado(o preço da posição não é fixo)?
Você pode especificar qualquer parâmetro, os níveis são armazenados no servidor. O mesmo servidor pode se recusar a executar suas paradas.
Você pode definir como quiser, os níveis são armazenados no servidor. O mesmo servidor pode se recusar a executar suas paradas.
É por isso que eu não quero receber recusas de servidores.
Isto é, é melhor se colocar em uma posição já existente (para ter certeza)?
É por isso que eu não quero ter rejeições de servidores.
Isto é, é melhor instalar em uma posição existente (para ter certeza)?
É melhor não fazer paradas, colocar limites.
É por isso que eu nunca os usei antes.
Mas, agora estou escrevendo uma classe CFORTSOrder e ela deve ter uma função para definir SL e TP
Adicionado
POSIÇÃO_SL |
Estes são os níveis mínimos?
Sou analfabeto na execução de estoques, mas ainda assim. Se houver deslizamento, os níveis serão exatamente iguais ao tamanho que você definir. Não chequei pessoalmente, mas li que sem SL e TP, a ordem é executada mais rapidamente. Se for realmente assim, então seria melhor esperar pela abertura da posição, e depois trabalhar com ela.
Obrigado
Obrigado
Eu sou analfabeto na execução de câmbio, mas mesmo assim. A ordem como um todo é melhor para colocar em uma posição existente, se houver deslizamento, os níveis serão exatamente do tamanho que você definir. Não chequei pessoalmente, mas li que sem SL e TP, a ordem é executada mais rapidamente. Se for realmente assim, então seria melhor esperar até que a posição seja aberta, e depois trabalhar com ela.
As próprias ordens de parada são acionadas muito rapidamente porque são armazenadas no servidor, e o próprio servidor envia as ordens sob as condições. Isto economiza ping para o servidor, em comparação com se você fosse fechar no mercado.
Mas os limitadores são mais confiáveis e a velocidade é incomparável (latência = 0).
Não medi a velocidade fisicamente, mas posso vê-la a olho nu - o preço não chegou a parar e o negócio foi executado e exibido na história, e então o gráfico começa a mostrar o preço e o negócio.
É por isso que eu nunca o usei antes.
Mas, agora estou escrevendo uma classe CFORTSOrder e ela deve ter uma função para definir SL e TP
Adicionado
POSIÇÃO_SL |
Estes são os níveis mínimos?
Por que não escrever uma função sem muletas que são armazenadas no servidor?
Escreva diretamente com os limites. Ou pelo menos TR com limites, e SL como você o obtém.
Por que não escrever função sem muletas que são armazenadas no servidor?
Escreva imediatamente com limites. Ou pelo menos TR com limites, e SL como você pode.
E porque provavelmente vou publicar o código de classe.
Não preciso dele, mas os iniciantes podem precisar dele.
{
if(PositionSelect(a_symbol))
{
ulong pos_ticket = ulong(PositionGetInteger(POSITION_TICKET));
ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));
double sl_level = PositionGetDouble(POSITION_SL);
double tp_level = PositionGetDouble(POSITION_TP);
MqlTradeRequest request = {0};
MqlTradeResult result = {0};
mem_magic = magic_storage + 1;
if(magic_storage >= (magic_number + 65530)) mem_magic = magic_number;
request.symbol = a_symbol;
request.action = TRADE_ACTION_SLTP;
request.comment = "Установка SL/TP";
request.magic = mem_magic;
request.position = pos_ticket;
switch(pos_type)
{
case POSITION_TYPE_BUY:
if (a_sl == 0)
{
request.sl = sl_level;
}
else
if(a_sl <= sl_level)
{
request.sl = a_sl;
}
else request.sl = sl_level;
if (a_tp == 0)
{
request.tp = tp_level;
}
else
if(a_tp >= tp_level)
{
request.tp = a_tp;
}
else request.tp = tp_level;
break;
case POSITION_TYPE_SELL:
if (a_sl == 0)
{
request.sl = sl_level;
}
else
if(a_sl >= sl_level)
{
request.sl = a_sl;
}
else request.sl = sl_level;
if (a_tp == 0)
{
request.tp = tp_level;
}
else
if(a_tp <= tp_level)
{
request.tp = a_tp;
}
else request.tp = tp_level;
break;
}
if(OrderSend(request, result))
{
if(result.retcode == TRADE_RETCODE_DONE)
{
magic_storage = mem_magic;
Print(__FUNCTION__, ": SL и/или TP установлен.");
}
}
else Print(__FUNCTION__, ": SL и/или TP не установлен.");
}
}
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Hi!
Nunca utilizou SL e TP
Por favor, esclareça.
Stop Loss e Take Profit são definidos em uma posição existente
Ou podemos definir estes parâmetros em uma ordem a ser definida, ou seja, quando a posição ainda não estiver aberta?
Se podemos especificar parâmetros em uma ordem, como devemos calcular SL e TP em uma ordem de mercado(o preço da posição não é fixo)?