[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 155

 
vovander:
que tipo de valor o OrderType() retorna? Obrigado

int OrderType( )
 

Tenho uma variável externa externa em minha placa. Se eu a prendo a dois pares diferentes e mudo esta externa em um deles, ela também muda no outro por alguma razão(

Como separá-los? Encontrei uma solução com parâmetros de corda - acrescento um nome simbólico no final da inicialização. mas e quanto aos inteiros e dublos?

---

outra pergunta sobre as funções da kim.

tem

//| sy - nome do instrumento ( "" - qualquer símbolo, |
//| NULL - símbolo corrente) |
//| op - operação ( -1 - qualquer posição) |
//| mn - MagicNumber ( -1 - qualquer magik) |
//+ +
void SimpleTrailing(string sy="", int op=-1, int mn=-1)

isto é, se eu chamar o SimpleTrailing(), a função funciona para todos os pares

mas se eu chamar o SimpleTrailing(NULL), então ele funciona apenas para aquele que tem a coruja em sua carta?

isto é alguma característica não documentada ou o quê? não consegui encontrar nenhuma referência ao NULL na função.

ou o SimpleTrailing(NULL) e o SimpleTrailing() são a mesma coisa?

 
Omm:

Pergunta idiota. existem variáveis externas no quadro. se eu ligá-lo a dois pares diferentes e mudar este externo em um deles, ele também muda no outro por alguma razão(

Encontrei uma solução para os parâmetros das cordas - anexei um nome simbólico ao final da função durante a inicialização.

---

outra pergunta sobre as funções da kim.


isto é, se eu chamar o SimpleTrailing(), então a função funciona para todos os pares

mas se eu chamar o SimpleTrailing(NULL), então ele funciona apenas para o par com a coruja?

Isto é alguma característica não documentada ou o quê? não consegui encontrar nenhuma referência ao NULL na função.

ou SimpleTrailing(NULL) e SimpleTrailing() são a mesma coisa?

1. Você está dizendo o impossível! - O que significa que você deve estar dizendo algo "errado". Posso assumir que a EA não utiliza o identificador - OrderMagicNumber().

2. Eu olhei para o código - algo me diz que o uso do SimpleTrailing() será idêntico ao SimpleTrailing(NULL). Cabe a você verificá-lo. E para que a função funcione com uma ferramenta gráfica, chame-a da seguinte forma: SimpleTrailing (Símbolo()).

 

1. este EA http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=42

A magia está formalmente lá (também no exterior por alguma razão), mas não entendo como fazer com que ela funcione.

Estou apenas tentando adicionar o Breakeven e o Trawl.

2. A questão está resolvida.

Encontrei-o em outra f-fi se (sy=="0") sy=Symbol();

Acho que o autor esqueceu de adicioná-lo a este aqui.

 

O que eu preciso é para a função Breakeven https://forum.mql4.com/ru/11287/page55#11315

trabalhar uma vez em uma determinada posição de um determinado símbolo

O que devo mexer no conservatório?

if(ExistPosições(Símbolo() )
{
para (int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderSymbol()==Symbol() )
MovingInWL(Símbolo())

}

}

 

Vocês têm uma função. Há várias encomendas de diferentes volumes.

Por exemplo, ordem1=0,1, ordem2=0,2, ordem3=0,3, ordem4=0,4 - a quantidade total de negócios é de 1 lote.

Em determinado momento, preciso fechar parte dos pedidos para o valor total de um determinado lote.

Por exemplo, eu preciso fechar 0,5 lotes. Portanto, precisamos de uma função que feche a ordem4=0,4 e o restante, por exemplo, da ordem3. Ou ordem1, ordem2 e o restante da ordem3.

 
Omm:

O que eu preciso é para a função Breakeven https://forum.mql4.com/ru/11287/page55#11315

trabalhar apenas uma vez em uma determinada posição de um determinado símbolo

O que devo consertar no conservatório?

Esta função tem verificação de disparo único - não há necessidade de inventar nada:

    if (ExistPositions (Symbol(), -1, Magic))
    {MovingInWL (Symbol(), -1, Magic);}

E a função MovingInWL() deve ser um pouco afinada:

void MovingInWL (string sy = "", int op = -1, int mn = -1)
{
    double po, pp, ld_BU;
    int    i, k = OrdersTotal();
//----
    if (sy = "0") sy = Symbol();
    for (i = k - 1; i >= 0; i--)
    {
        if (!OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue;
        if (sy != "") if (OrderSymbol() != sy) continue;
        if (mn >= 0) if (mn != OrderMagicNumber()) continue;
        po = MarketInfo (OrderSymbol(), MODE_POINT);
        if (OrderType() == OP_BUY)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() - OrderOpenPrice() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_BID);
                if (pp - OrderOpenPrice() > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() + LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                    continue;
                }
            }
        }
        else if (OrderType() == OP_SELL)
        {
            //---- Это условие выполняется однократно (пока БУ не установлен)
            if (OrderStopLoss() == 0 || OrderOpenPrice() - OrderStopLoss() < LevelWLoss * po)
            {
                pp = MarketInfo (OrderSymbol(), MODE_ASK);
                if (OrderOpenPrice() - pp > LevelProfit * po)
                {
                    ld_BU = NormalizeDouble (OrderOpenPrice() - LevelWLoss * po, MarketInfo (OrderSymbol(), MODE_DIGITS));
                    ModifyOrder (-1, ld_BU, -1);
                }
            }
        }
    }
//----
}
 

Por favor, ajude-me a mudar a função, no indicador Alto Baixo de vela semanal parece assim

se (TimeDay(Time[i])!=TimeDay(Time[i+1])
{
if(TimeDayOfWeek(Time[i])==1)

Preciso de um castiçal mensal com um castiçal alto e baixo. Obrigado

 

TarasBY, não funciona assim.

No e-TFL_V2 eu adiciono estas duas linhas para iniciar() e a própria função MovingInWL.

Se várias posições estiverem abertas, o breakeven é fixado em apenas uma delas. em cada carrapato tenta fazer isso novamente.

Assim que uma posição de Breakeven é fechada, ela a coloca na próxima posição.

Se notei na primeira mensagem que o valor do breakeven é o mesmo para todos os símbolos, mesmo que eu tenha definido números diferentes na janela de ajustes da EA.

Não tenho certeza onde está a verificação de disparo único?

p.s. obrigado pela função corrigida. estou testando em 5 dígitos, mas acho que a maioria das funções da kim funcionam de qualquer forma.

p.s.s. Eu o administrei por um tempo. Parecia funcionar. foi o bug da MovingInWL. obrigado mais uma vez. tenho lutado com ele há dois dias))

p.s.s. não consigo entender por que a Magic deve ser movida para parâmetros externos da EA?

 
Como criar meu próprio servidor para Metatrader, ou seja, um servidor ao qual outra pessoa do meu mt possa se conectar?
Razão: