[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 182
Eu escrevi um indicador simples. Aqui está o código:
Há apenas um amortecedor nele. Os valores dos indicadores são do tipo duplo.
No Expert Advisor, decidi obter o valor do indicador e aplicá-lo ao comércio como um filtro.
Aqui escrevi uma simples chamada de função deste tampão indicador na última barra formada:
No testador, o valor da inclinação é devolvido incorretamente:
Por quê? O tipo é correto. A chamada também está correta. O indicador funciona de forma adequada. Aqui está o log no testador, e do mercado real atual:
Por que um número2147483647 é devolvidoo tempo todo em vez do número exigido?
Um valor Vazio(EMPTY_VALUE) é devolvido a você, que é 2147483647. Talvez você devesse pressionar Ctrl+D e consultar os dados do próprio indicador?
Eu escrevi um indicador simples. Aqui está o código:
Tem apenas um buffer. Os valores dos indicadores são do tipo duplo.
No Expert Advisor, decidi obter o valor do indicador e aplicá-lo ao comércio como um filtro.
Aqui escrevi uma simples chamada de função deste tampão indicador na última barra formada:
O valor da inclinação não é correto no testador:
Por quê? O tipo é correto. A chamada também está correta. O indicador funciona de forma adequada. Aqui está o log no testador, e do mercado real atual:
Por que um número2147483647 é devolvidoo tempo todo em vez do número exigido?
Você está certo... Mas é apenas o número de barras que precisa de ser recalculado. Estranho por que não há maneira de obter o valor correto neste caso.
Se você comentar esta linha, tudo funciona bem e corrige o cálculo a partir da 0ª barra:
int start()
{
int i, countedBars = IndicatorCounted();
int limit = Bars - countedBars - 1;
//if (limit > 400) limit = 400;for(i = limit;i > 0;i--)
{
Mas Na variante anterior, no priming, o valor era adequado. Mas a coruja não é adequada. Por quê?
Ajude-me a encontrar um erro, nenhuma ação e nenhum erro. Talvez eu esteja sentindo falta de algumas bibliotecas?
//+------------------------------------------------------------------+//+------------------------------------------------------------------+#import "kernel32.dll"int _lopen (string path, int of);
int _lcreat (string path, int attrib);
int _llseek (int handle, int offset, int origin);
int _lread (int handle, string buffer, int bytes);
int _lwrite (int handle, string buffer, int bytes);
int _lclose (int handle);
#importint start()
{
string text ="222222";//текст который собираемся записать или перезаписать в файлstring pach ="D:\FILE.txt";//путь куда записываем файл или перезаписываем
WriteFile("D:\FILE.txt", text);//выполнение
}
//+------------------------------------------------------------------+//| записать содержимое буфера по указанному пути |//+------------------------------------------------------------------+void WriteFile (string path, string buffer)
{
int count=StringLen(buffer); //Возвращает число символов в строке. int result;
int handle=_lopen (path,1);
if(handle<0) //если файл еще не создан то создаем
{
handle=_lcreat (path,0);
result=_lclose (handle);
}
handle=_lopen (path,1); //открываем
result=_llseek (handle,0,0); //ставим указатель
result=_lwrite (handle,buffer,count); //записываем
result=_lclose (handle); //закрываем файл
}
//+------------------------------------------------------------------+
Eu escrevi um indicador simples. Aqui está o código:
Há apenas um amortecedor nele. Os valores dos indicadores são do tipo duplo.No Expert Advisor, decidi obter o valor do indicador e aplicá-lo ao comércio como um filtro.
Aqui escrevi uma simples chamada de função deste tampão indicador na última barra formada:
No testador, o valor da inclinação é devolvido incorretamente:Por quê? O tipo é correto. A chamada também está correta. O indicador funciona de forma adequada. Aqui está o log no testador, e do mercado real atual:
Por que um número2147483647 é devolvidoo tempo todo em vez do número exigido?
Eu escrevi um indicador simples. Aqui está o código:
Tem apenas um buffer. Os valores dos indicadores são do tipo duplo.No Expert Advisor, decidi obter o valor do indicador e aplicá-lo ao comércio como um filtro.
Aqui escrevi uma simples chamada de função deste tampão indicador na última barra formada:
O valor da inclinação não é correto no testador:Por quê? O tipo é correto. A chamada também está correta. O indicador funciona de forma adequada. Aqui está o log no testador, e do mercado real atual:
Por que um número2147483647 é devolvidoo tempo todo em vez do número exigido?
Reformulou o indicador
O problema parece estar com o indicador.
Você está certo... Mas é apenas o número de barras que precisa de ser recalculado. Estranho por que não há maneira de obter o valor correto neste caso.
Se você comentar esta linha, tudo funciona bem e corrige o cálculo a partir da 0ª barra:
Mas Na variante anterior, no priming, o valor era adequado. Mas a coruja não é adequada. Por quê?
Você está certo... Mas é apenas o número de barras a serem recalculadas. Estranho porque, neste caso, não há como obter o valor correto.
Se esta linha for comentada, tudo funciona bem e o cálculo a partir da barra 0 é corrigido:
Mas Na variante anterior, ele estava produzindo um valor adequado. Mas a coruja não é adequada. Por quê?
Parece que você está usando o modo de visualização para verificar
Você parece estar usando o modo de visualização para verificar
Sim, e daí?
Ajude-me a encontrar um erro, nenhuma ação e nenhum erro. Talvez eu esteja sentindo falta de algumas bibliotecas?
Meu sistema: MT4, Build 451.
Windows 7 Home Base.
Ajude-me a encontrar um bug, sem ação e sem erro. Talvez eu esteja sentindo falta de algumas bibliotecas?
Meu sistema: MT4, Build 451.
Windows 7 Home Base.
como escolher o menor lote entre todos os comércios abertos?
int i, ot = OrdersTotal(); double min=0; int min_ticket=0; for(i=0;i<ot;i++) { if(!OrderSelect(i,SELECT_BY_POS)) continue; if(OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue; if(i==0||min> OrderLots()) {min = OrderLots(); min_ticket=OrderTicket();} }