Como calcular o volume do lote em incrementos? Se depósito =1000, lote = 0,1, o depósito tornou-se lote 2000 = 0,2. Ou seja, se o depósito for de 1500 ou 1700, o lote não será aumentado.
Como calcular o volume do lote em incrementos? Se depósito =1000, lote = 0,1, o depósito tornou-se lote 2000 = 0,2. Ou seja, se o depósito for de 1500 ou 1700, o lote não aumenta.
double percentLot = 0.01,
lot = NormalizeDouble(MathFloor(AccountInfoDouble(ACCOUNT_BALANCE)*percentLot/10)/10, 1);
Boa tarde, você poderia me dizer se é possível adicionar coordenadas ao indexador do mouse se você puder, por favor, me envie um e-mail para ereminmikola@yandex.ru
Olá programadores. Você poderia me dar uma dica sobre como abordar corretamente a seguinte condição:
1. O Expert Advisor abre 2 ordens de mercado (compra e venda) com o mesmo lote especificado nas configurações. - A ordem é executada sem nenhum problema
O próximo apresenta um problema, o preço pode se mover tanto para a direção da VENDA quanto para a direção da COMPRA. Como podemos organizar o código para que, quando n pontos forem passados, o Consultor Especialista analise a rentabilidade dessas duas transações em LIVE e feche a ordem que tem um saldo negativo após n pontos? Se você tiver qualquer outra idéia de como fazer isso, por favor, informe.
Eu lhe dou o código - rascunho, apenas o primeiro ponto é executado, e 2 negociações são abertas com TP e SL
2. Quando o preço atinge a quantidade especificada de pips, então eu fecho o pedido com um saldo negativo e abro mais 2 pedidos (compra e venda) com o mesmo lote,
As paradas são estabelecidas ao preço de abertura da primeira ordem, ou seja, se a tendência se inverter, todas as 3 ordens devem fechar simultaneamente.
externint _ms = 1000;
externdouble _lots = 0.01;
externdouble _TP = 80;
externdouble _SL = 35;
int _mn;
double pt;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
pt = Point;
if (Digits==3||Digits==5) {pt*=10;} else pt = Point;
_mn = MagicNumberGenerator(_ms);
Print("The magic number is ",_mn);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
if (IsNewCandle())
{
if (TotalOpenOrders(_mn)==0)
{
EnterTrade(OP_BUY);
EnterTrade(OP_SELL);
}
}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| Открытие первых позиций |//+------------------------------------------------------------------+void EnterTrade(int type)
{
double price = 0; double sl = 0; double tp = 0; double lot = _lots;
if (type == OP_BUY) price = Ask;
elseif (type == OP_SELL) price = Bid;
int err = 0;
int ticket = OrderSend(_Symbol, type, lot, price, 30, 0, 0, NULL, _mn, 0, clrGreen);
if (ticket == -1)
{
err = GetLastError();
Print("Could not place the order due to error ",err," ",ErrorDescription(err));
if (err == ERR_TRADE_NOT_ALLOWED) Alert("You need to enable you autotrade button");
}
else
{
if(!OrderSelect(ticket,SELECT_BY_TICKET))
{
err = GetLastError();
Print("Could not select the order due to error ",err," ",ErrorDescription(err));
}
else
{
if (OrderType()==OP_SELL)
{
sl = OrderOpenPrice()+(_SL*pt);
if (_SL==0) sl = 0;
tp = OrderOpenPrice()-(_TP*pt);
}
elseif (OrderType()==OP_BUY)
{
sl = OrderOpenPrice()-(_SL*pt);
if (_SL==0) sl = 0;
tp = OrderOpenPrice()+(_TP*pt);
}
if(!OrderModify(ticket, OrderOpenPrice(), sl, tp, 0, clrNONE))
err = GetLastError();
Print("Could not modify the order due to error ",err," ",ErrorDescription(err));
}
}
}
A tarefa é encontrar a barra com o fechamento mínimo
for(int x=0; x<=xBars -1; x++)
{
contador++;
// Imprimir(Fechar[x],",", contador);
int h = ArrayMinimum(Fechar[x]);
if(contador > 20) break;
}
Compilador jura de Fechado
Escreva os preços de fechamento em uma matriz separada e depois fora do ArrauMinimum chick
A tarefa é encontrar a barra com o mínimo de fechamento
existem as funções iHighest e iLowest (agora também em MT5)
existem as funções iHighest e iLowest (agora também em MT5)
A tarefa é encontrar a barra com o fechamento mínimo
for(int x=0; x<=xBars -1; x++)
{
contador++;
// Imprimir(Fechar[x],",", contador);
int h = ArrayMinimum(Fechar[x]);
if(contador > 20) break;
}
O compilador jura em Close
A tarefa de buscar o preço mínimo/máximo na MQL4 é resolvida por uma linha:
você pode, mas não será exatamente um timer.
Obrigado.
Como calcular o volume do lote em incrementos? Se depósito =1000, lote = 0,1, o depósito tornou-se lote 2000 = 0,2. Ou seja, se o depósito for de 1500 ou 1700, o lote não será aumentado.
Obrigado.
Como calcular o volume do lote em incrementos? Se depósito =1000, lote = 0,1, o depósito tornou-se lote 2000 = 0,2. Ou seja, se o depósito for de 1500 ou 1700, o lote não aumenta.
De alguma forma...
Assim...
Não, não, com um depósito de 1100, o lote será de 0,11, e eu preciso que o lote não aumente até 2000. Como eu defino o passo =1000 nos ajustes?
Olá programadores. Você poderia me dar uma dica sobre como abordar corretamente a seguinte condição:
1. O Expert Advisor abre 2 ordens de mercado (compra e venda) com o mesmo lote especificado nas configurações. - A ordem é executada sem nenhum problema
O próximo apresenta um problema, o preço pode se mover tanto para a direção da VENDA quanto para a direção da COMPRA. Como podemos organizar o código para que, quando n pontos forem passados, o Consultor Especialista analise a rentabilidade dessas duas transações em LIVE e feche a ordem que tem um saldo negativo após n pontos? Se você tiver qualquer outra idéia de como fazer isso, por favor, informe.
Eu lhe dou o código - rascunho, apenas o primeiro ponto é executado, e 2 negociações são abertas com TP e SL
2. Quando o preço atinge a quantidade especificada de pips, então eu fecho o pedido com um saldo negativo e abro mais 2 pedidos (compra e venda) com o mesmo lote,
As paradas são estabelecidas ao preço de abertura da primeira ordem, ou seja, se a tendência se inverter, todas as 3 ordens devem fechar simultaneamente.