Estou tentando fazer um indicador na MQL4, que traçaria uma linha no gráfico "US.500+" por preços próximos de "US.30+". Em geral, as linhas de preços de dois símbolos estariam visíveis em um gráfico. Abaixo está o código, mas ele não funciona. Na mensagem de registro "o indicador no buffer personalizado ainda não é suportado". Ensine-me porque não funciona. Opostas.
#property version"1.00"#property strict#property indicator_chart_window#property indicator_buffers1#property indicator_plots1#property indicator_color1clrRed#property indicator_style1STYLE_DOT#property indicator_type1DRAW_LINE//---inputstring symbolName="US.30+"; // Symbol nameinputdouble difference=-22387.0; // Difference from other symbol//--- price buffer for other symboldouble otherSymbol[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mappingSetIndexBuffer(0,otherSymbol,INDICATOR_DATA);
//---returnINIT_SUCCEEDED;
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constint begin,
constdouble &price[])
{
//---for(int i=prev_calculated;i<rates_total;i++)
otherSymbol[i+1]=iClose(symbolName,PERIOD_CURRENT,i)+difference;
ArraySetAsSeries(otherSymbol,true);
//--- return value of prev_calculated for next callreturn(rates_total);
}
Estou tentando fazer um indicador na MQL4, que traçaria uma linha no gráfico "US.500+" por preços próximos de "US.30+". Em geral, as linhas de preços de dois símbolos estariam visíveis em um gráfico. Abaixo está o código, mas ele não funciona. Na mensagem de registro "o indicador no buffer personalizado ainda não é suportado". Ensine-me porque não funciona. Opostas.
Porque você tem que usar a primeira forma de chamada.
lil_lil: Se for 300 em vez de 60 segundos ... você precisa escrever em intervalos de 300 segundos a partir do momento em que a posição foi aberta. Como fazer isso?
Você já tentou meu programa? Eu realmente não entendo 300... Se você definir 300 em vez de 60, é verdade? Se você me disser como lucrar com isso, eu tentarei entender melhor!
Ajuda com a EA, como sempre o problema é provavelmente trivial, mas ainda não resolvi o enigma
Deve abrir comprar seema>smma deema ou não chegar ao seuponto(mesmo para vender). Deve fechar o negócio no fechamento do bar - abrir um novo bar. O próximo abre da mesma forma, mas com uma condição acima dopreço de abertura do anterior, que é opreço_da_ordem_última_venda.
Mas no final, abre onde quer e fecha. (No início do teste ele abre e fecha imediatamente)
Ajuda com a EA, como sempre o problema é provavelmente trivial, mas ainda não resolvi o enigma
Deve abrir comprar seema>smma deema ou não chegar ao seuponto(mesmo para vender). Deve fechar o negócio no fechamento do bar - abrir um novo bar. O próximo abre da mesma forma, mas com uma condição acima dopreço de abertura do anterior, que é opreço_da_ordem_última_venda.
Mas no final, abre onde quer e fecha. (No início do teste ele abre e fecha imediatamente)
Como posso sugerir? Salve seu código na prancheta, escreva-o no Expert Advisor e execute-o no testador de estratégia? Bem, farei com que ela se abra e feche. E daí? Talvez eu faça uma demonstração - hoje é sábado, amanhã é domingo, o mercado está fechado. Posso examiná-los com meus olhos? Bem, você tem que ter em mente os valores de todas as variáveis. Havia antes um método de depuração com lápis e papel - experimente-o. Você também pode colocar um Alerta("Bid=", Bid, Fast+P=",Fast_Ema+point*_Point," ....) antes de todo o OrderSelect e OrderClose e definir um dia no testador, por exemplo, de 19 a 20 de fevereiro e depois do teste para abrir o registro, fazer uma cópia, remover linhas desnecessárias e analisar. O MetaEditor também tem um recurso de depuração. Quando você aprende a depurar ... será ótimo.
Espalhamento, se definido como atual. Data de término do teste se faturado como atual. Poderia haver muitas outras razões.
Espalhamento fixo, Data final 01.01.18
Diferencial fixo, Data final 01.01.18
custo por ponto..... etc
tente neste fim de semana.
Estou tentando fazer um indicador na MQL4, que traçaria uma linha no gráfico "US.500+" por preços próximos de "US.30+". Em geral, as linhas de preços de dois símbolos estariam visíveis em um gráfico. Abaixo está o código, mas ele não funciona. Na mensagem de registro "o indicador no buffer personalizado ainda não é suportado". Ensine-me porque não funciona. Opostas.
Estou tentando fazer um indicador na MQL4, que traçaria uma linha no gráfico "US.500+" por preços próximos de "US.30+". Em geral, as linhas de preços de dois símbolos estariam visíveis em um gráfico. Abaixo está o código, mas ele não funciona. Na mensagem de registro "o indicador no buffer personalizado ainda não é suportado". Ensine-me porque não funciona. Opostas.
Porque você tem que usar a primeira forma de chamada.
Encontrei o motivo - 60 segundos devem ser contados fora de um loop
Obrigado, obrigado pelo esclarecimento.
Se ao invés de 60 segundos, serão 300.
Ostempos de abertura das posições são diferentes, você precisa escrever com 300 segundos de intervalo em relação ao tempo de abertura das posições.
Como devo fazer isso?
Você já tentou meu programa? Eu realmente não entendo 300... Se você definir 300 em vez de 60, é verdade? Se você me disser como lucrar com isso, eu tentarei entender melhor!
Ajuda com a EA, como sempre o problema é provavelmente trivial, mas ainda não resolvi o enigma
Deve abrir comprar seema>smma deema ou não chegar ao seuponto(mesmo para vender). Deve fechar o negócio no fechamento do bar - abrir um novo bar. O próximo abre da mesma forma, mas com uma condição acima dopreço de abertura do anterior, que é opreço_da_ordem_última_venda.
Mas no final, abre onde quer e fecha. (No início do teste ele abre e fecha imediatamente)
Ajuda com a EA, como sempre o problema é provavelmente trivial, mas ainda não resolvi o enigma
Deve abrir comprar seema>smma deema ou não chegar ao seuponto(mesmo para vender). Deve fechar o negócio no fechamento do bar - abrir um novo bar. O próximo abre da mesma forma, mas com uma condição acima dopreço de abertura do anterior, que é opreço_da_ordem_última_venda.
Mas no final, abre onde quer e fecha. (No início do teste ele abre e fecha imediatamente)
Onde ele tem um botão?
Você pode me dizer como alinhar o texto no controle CSpinEdit de #include <Controls\SpinEdit.mqh> (campo de texto com incremento).
Por padrão, está alinhado à borda esquerda, mas quero que esteja alinhado à direita.