Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 816
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Acabo de experimentar o "arquivo de citações" . atualizando cada gráfico separadamente, o histórico de quase todos os gráficos começou a funcionar corretamente, exceto por alguns pares exóticos, eu os apaguei e atualizei algumas vezes - nenhum dado novo para o gráfico. em geral, podemos dizer que a questão está resolvida
obrigado pela eficiência))))
Caros programadores....I tenho um problema... Eucriei um EA.... e ele abre negócios normalmente (no testador) .... mas fecha só compra negócios.... ele só fecha negócios de venda depois de completar o teste... aqui está um pedaço de código.... você pode me ajudar...
//---------------------------------------------------------------------------------------------------------
void CloseSell()
{
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol())
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Green);
}
}
}
}
//+------------------------------------------------------------------+
void CloseBuy()
{
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol())
{
if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Green);
}
}
}
}
//+------------------------------------------------------------------+
void OpenSellOrder()
{
mlots = GetLots();
if (AutoSL) sl = CalcSL(OP_SELL);
else sl = ND(Bid - StopLoss*Point);
tp = ND(Bid - TakeProfit*Point);
ticket = OrderSendReliable(Symbol(), OP_SELL, mlots, Bid, Slippage, 0, 0, comment, Magic, 0, Red);
if(ticket > 0)
OrderModifyReliable(OrderTicket(), OrderOpenPrice(), sl, tp, 0);
}
//+------------------------------------------------------------------+
int OpenBuyOrder()
{
mlots = GetLots();
if (AutoSL) sl = CalcSL(OP_BUY);
else sl = ND(Bid - StopLoss*Point);
tp = ND(Ask + TakeProfit*Point);
ticket = OrderSendReliable(Symbol(), OP_BUY, mlots, Ask, Slippage, 0, 0, comment, Magic, 0, Blue);
if(ticket > 0)
OrderModifyReliable(OrderTicket(), OrderOpenPrice(), sl, tp, 0);
}
//+------------------------------------------------------------------+
void ModifyLoss()
{
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue;
if (OrderType() == OP_BUY)
{
sl = ND(OrderOpenPrice() + LossPoints*Point);
if (OrderStopLoss() < sl && (Ask - OrderOpenPrice())/Point >= LossLimit)
{
if (sl != ND(OrderStopLoss()))
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
else
if (OrderType() == OP_SELL)
{
sl = ND(OrderOpenPrice() - LossPoints*Point);
if (OrderStopLoss() > sl && (OrderOpenPrice()-Bid)/Point >= LossLimit)
{
if (sl != ND(OrderStopLoss()))
OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0);
}
}
}
}
}
//+------------------------------------------------------------------+
double CalcSL(int otype)
{
double sloss = 10000000;
if (otype == OP_BUY)
{
double min;
for (int i=1; i<=SLBars; i++)
{
min = iLow(NULL, 0, i);
if (min < sloss)
sloss = min;
}
sloss = ND(sloss - SLPips*Point);
if ((Ask-sloss)/Point < MinSL)
sloss = ND(Ask - MinSL*Point);
if ((Ask - sloss)/Point > MaxSL)
sloss = ND(Ask - MaxSL*Point);
else
sloss = ND(sloss - SLPips*Point);
return(sloss);
}
else
if (otype == OP_SELL)
{
double max;
sloss = 0;
for (i=1; i<=SLBars; i++)
{
max = iHigh(NULL, 0, i);
if (max > sloss)
sloss = max;
}
if ((sloss - Bid)/Point < MinSL)
sloss = ND(Bid + MinSL*Point);
if ((sloss - Bid)/Point > MaxSL)
sloss = ND(Bid + MaxSL*Point);
else
sloss = ND(sloss + SLPips*Point);
return(sloss);
}
return(0);
}
//+------------------------------------------------------------------+
double GetLots()
{
if (!UseMM) return(FixLot);
double clots;
clots = AccountBalance() / 10000.0 * LotsFor10000;
clots = MathMax(clots, MarketInfo(Symbol(), MODE_MINLOT));
clots = MathMin(clots, MarketInfo(Symbol(), MODE_MAXLOT));
clots = NormalizeDouble(clots, 2);
return (clots);
}
//+------------------------------------------------------------------+
int CountBuy()
{
int count = 0;
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
count++;
}
}
return (count);
}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0;
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
count++;
}
}
return (count);
}
//+------------------------------------------------------------------+
int CountTrades()
{
return(CountBuy() + CountSell());
}
//+------------------------------------------------------------------+
double ND(double value)
{
return (NormalizeDouble(value, Digits));
Pré-selecionar ordem OrderSelect (Ticket_first_order, SELECT_BY_TICKET);
if(OrderOpenPrice()+10*Point==Ask)
OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);
Acho que é um ramo de trabalho...oops, desculpe.
Boa noite a todos!!! Feliz Ano Novo!
Decidiu salvar os dados do buffer através de um arquivo. Não há problema para criar um arquivo e escrever nele, mas é difícil de ler a partir dele.
Aqui está um programa experimental. Por favor, ajude. O problema é que ou há uma escrita extra no arquivo, ou ele não pode ser lido a partir do arquivo. Só quero ler uma lista de um arquivo em, por exemplo, matrizes... Se eu sou preguiçoso demais para escrever, por favor, faça um link para material similar, mas encontrei apenas um tutorial... MAS É MELHOR UMA VARIANTE PRONTA NO SITE)))):
OBRIGADO DE QUALQUER FORMA!!!))
Infelizmente, não é tão fácil com a GRAVAÇÃO no arquivo!((
E parecia ... pelo contrário.
A leitura é ordenada graças aos exemplos do tutorial, mas a gravação em um arquivo requer um código mais complexo. Em resumo, eu já estou enganado... Não consigo descobrir como mover o registro em sincronia com a leitura do arquivo.
Corrigi o ajuste de níveis para as barras do dia e para o histórico (dados iniciais armazenados em buffer).
A QUESTÃO É A MESMA. POR FAVOR, ME DÊ UMA DICA, SE HOUVER MUITA ESCRITA, SOBRE COMO ESCREVER DADOS BUFFER EM UM ARQUIVO.
CÓDIGO MODIFICADO DO PROGRAMA
ENCONTRADO ONDE PROCURAR RESPOSTAS ÀS MINHAS PERGUNTAS... SOBRE OPERAÇÕES DE ARQUIVO))))):
SCRIPTS PARA A SAÍDA DE INFORMAÇÕES DE UM ARQUIVO PARA UM GRÁFICO.
HISTÓRICO DE CÓDIGOS MT4 LIVRES, HÁ OPÇÕES DE TRANSFERÊNCIA DE DADOS PARA UM ARQUIVO, BEM COMO A OPERAÇÃO INVERSA.
OBRIGADO A TODOS, A TODOS CIAO)))):
Há um grande arquivo com datas neste formulário "20141231". Para converter a string para o formato dedata e hora, você precisa de pontos"YYYY.MM.DD" entre o ano, mês e número.
Como isso pode ser feito?
Olá a todos, quero que a EA encontre a maior alta ou a menor baixa em 100 barras, aconselha onde ler?
Você pode ler a ajuda, está tudo aí, com exemplos.