[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 559

 
T-G:
Por favor, me dê uma função para calcular o lote de abertura máximo permitido no depósito, levando em conta as posições abertas (patrimônio líquido). Agradecemos antecipadamente.

double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);

double requiredlots = AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED);

maxlot = MathMin(maxlot, requiredlots); // Максимальный объем, на который можно открыться

// Далее необходимо maxlot нормализовать под спецификацию контрактов, прежде чем вставлять в приказ
 

Saudações.

Ajude-me a identificar este peru: http://findicators.com/wp-content/uploads/2009/04/heiken-ashi.jpg

Diz-se que é um ashi heiken, mas até mesmo um cálculo rápido quebra o padrão. Talvez alguém saiba o que é isso?

Respeitosamente.

 
ns88ns:

Saudações.

Ajude-me a identificar este peru: http://findicators.com/wp-content/uploads/2009/04/heiken-ashi.jpg

Diz-se que é um ashi heiken, mas até mesmo um cálculo rápido quebra o padrão. Talvez alguém saiba o que é isso?

Respeitosamente.


O mesmo, ou melhor, uma modificação do mesmo. É construído pelo mashqs
 
Vinin:

É, ou melhor, sua modificação. Ele se constrói sobre a balança.


Obrigado...

Eu descobri... Só não entendo, neste caso o HA está manchado no MA, ou de alguma outra forma... Bem, isso não é importante.

 
Ajude-me a modificar o indicador para um semi-automático.

Eu desenho uma linha simples manualmente e a nomeio como Trendline 42864, por exemplo. Como posso fazer para que, quando eu criar outra linha, o código renomeie cada linha criada, repinte-a, defina a espessura, etc.

Para que eu preciso dele? Eu tenho um indicador, preciso transformá-lo em um indicador semi-automático. Isto é, eu desenho uma linha de tendência manualmente, o código deve repintar e desenhar outra linha de desenvolvimento, vertical e horizontal. Preciso dele para poder desenhar cada um deles.

O indicador está anexado. O princípio, traçamos uma linha em dois pontos, quando a dupla distância através destes dois pontos é passada, a linha termina e a tendência pára e entra em incerteza. Quero dizer desde já que não devemos tentar criar uma máquina automática por esta linha nesta fase. Preciso de um semi-automático, por enquanto.

Arquivos anexados:
 

Boa tarde. Ao tentar modificar dois pedidos simultaneamente, para vender - definir sl..,

Se eu tentar modificar apenas uma ordem de venda e uma ordem de compra, eu não consigo ver a ordem de compra. Por favor, informe o que pode ser o

ser a razão?

void FirstSellLockBuyModifi()
{
 double lock_buy_tp = NormalizeDouble((FirsSellLockBuyAvP()+TakeProfit*Point),Digits);
 int spread = MarketInfo(Symbol(),MODE_SPREAD);
 double first_sell_sl = NormalizeDouble((lock_buy_tp+spread*Point),Digits);        
 for (int i = 0; i <= OrdersTotal(); i ++)
    {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()!=Symbol())continue;
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
     if (OrderType()==OP_SELL && OrderOpenPrice()==FirstSellPrice())
       {Print("Мод-ция ордера FIRST SELL");
        OrderModify(OrderTicket(),OrderOpenPrice(),first_sell_sl,OrderTakeProfit(),0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера FIRST SELL № ",OrderTicket()," ошибка № ",error);
       }
     if (OrderType()==OP_BUY)
       {Print("Мод-ция ордера LOCK BUY");
        OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lock_buy_tp,0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера LOCK BUY № ",OrderTicket()," ошибка № ",error);
       }
    }
 return(0);
}
 
TEXX:

Boa tarde. Ao tentar modificar dois pedidos simultaneamente, para vender - definir sl..,

Se eu tentar modificar apenas uma ordem de venda e uma ordem de compra, eu não consigo ver a ordem de compra. Por favor, informe o que pode ser o

ser a razão?

É bem possível que esteja aqui?

for (int i = 0; i <= OrdersTotal(); i ++)

Não está claro por que existe um espaço antes de ++?

Mas o principal erro é modificar mais de uma ordem ao mesmo tempo. O servidor não será capaz de executá-lo, pois ao tentar modificar a segunda ordem, o segmento comercial será fechado. Embora no testador, tal situação pode ser tratada sem qualquer problema.

 
TEXX:

Boa tarde. Ao tentar modificar dois pedidos simultaneamente, para vender - definir sl..,

Se eu tentar modificar apenas uma ordem de venda e uma ordem de compra, eu não consigo ver a ordem de compra. Por favor, informe o que pode ser o

ser a razão?

     
 for (int i = 0; i <= OrdersTotal(); i ++)  // 1 ошибка
  
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()!=Symbol())continue; // нет смысла
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)  // после неё нет открывающейся скобки
  
   if (OrderType()==OP_SELL && OrderOpenPrice()==FirstSellPrice())
       {Print("Мод-ция ордера FIRST SELL");
        OrderModify(OrderTicket(),OrderOpenPrice(),first_sell_sl,OrderTakeProfit(),0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера FIRST SELL № ",OrderTicket()," ошибка № ",error);
       }

     if (OrderType()==OP_BUY)
       {Print("Мод-ция ордера LOCK BUY");
        OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lock_buy_tp,0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера LOCK BUY № ",OrderTicket()," ошибка № ",error);
       }

Que erro ele dá?
 
sergeev:
Que erro ele dá?


esse é o ponto, não há erros, apenas comprar não modifica e pronto, mas se vender é comentado, então modifique....
 

Um resultado negativo também é um resultado e não é menos importante, mas se você vir o seguinte quadro (na libra, a perda total de 100 000 a 2000 com 1 lote) ...... é razoável reescrever a compra na venda, parar no lucro, etc.?

Sua opinião?