He escrito un indicador sencillo. Aquí está el código:
Sólo hay un búfer en él. Los valores de los indicadores son del tipo double.
En Expert Advisor, decidí obtener el valor del indicador y aplicarlo a la operación como un filtro.
Aquí escribí una simple llamada a la función de este búfer indicador en la última barra formada:
En el probador el valor de la pendiente se devuelve mal:
¿Por qué? El tipo es correcto. La llamada también es correcta. El indicador funciona correctamente en absoluto. Aquí está el registro en el probador, y desde el mercado actual real:
¿Por qué se devuelve siempre el número2147483647 en lugar del número requerido?
Se le devuelve un valor vacío(EMPTY_VALUE), que es 2147483647. ¿Quizás deberías pulsar Ctrl+D y buscar los datos del propio indicador?
He escrito un indicador sencillo. Aquí está el código:
Sólo tiene un búfer. Los valores de los indicadores son del tipo double.
En Expert Advisor, decidí obtener el valor del indicador y aplicarlo a la operación como un filtro.
Aquí escribí una simple llamada a la función de este búfer indicador en la última barra formada:
El valor de la pendiente no es correcto en el probador:
¿Por qué? El tipo es correcto. La llamada también es correcta. El indicador funciona correctamente en absoluto. Aquí está el registro en el probador, y desde el mercado actual real:
¿Por qué se devuelve siempre el número2147483647 en lugar del número requerido?
Ayúdame a encontrar un error, sin acción y sin error. ¿Quizá me faltan algunas 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); //закрываем файл
}
//+------------------------------------------------------------------+
He escrito un indicador sencillo. Aquí está el código:
Sólo hay un búfer en él. Los valores de los indicadores son del tipo double.En Expert Advisor, decidí obtener el valor del indicador y aplicarlo a la operación como un filtro.
Aquí escribí una simple llamada a la función de este búfer indicador en la última barra formada:
En el probador el valor de la pendiente se devuelve mal:¿Por qué? El tipo es correcto. La llamada también es correcta. El indicador funciona correctamente en absoluto. Aquí está el registro en el probador, y desde el mercado actual real:
¿Por qué se devuelve siempre el número2147483647 en lugar del número requerido?
He escrito un indicador sencillo. Aquí está el código:
Sólo tiene un búfer. Los valores de los indicadores son del tipo double.En Expert Advisor, decidí obtener el valor del indicador y aplicarlo a la operación como un filtro.
Aquí escribí una simple llamada a la función de este búfer indicador en la última barra formada:
El valor de la pendiente no es correcto en el probador:¿Por qué? El tipo es correcto. La llamada también es correcta. El indicador funciona correctamente en absoluto. Aquí está el registro en el probador, y desde el mercado actual real:
¿Por qué se devuelve siempre el número2147483647 en lugar del número requerido?
Se ha modificado el indicador
El problema parece estar en el indicador.
Tienes razón... Pero lo que hay que recalcular es el número de barras... Es extraño que no haya forma de obtener el valor correcto en este caso.
Si se comenta esta línea, todo funciona bien y se corrige el cálculo desde la barra 0:
Pero En la variante anterior, en el momento del cebado daba un valor adecuado. Pero las tomas de búho no son adecuadas. ¿Por qué?
Tienes razón... Pero es sólo el número de barras que hay que recalcular... Es extraño porque en este caso no hay manera de obtener el valor correcto.
Si se comenta esta línea, todo funciona bien y se corrige el cálculo de la barra 0:
Pero En la variante anterior, daba un valor adecuado. Pero las tomas de búho no son adecuadas. ¿Por qué?
Parece que está utilizando el modo de visualización para comprobar
Parece que está utilizando el modo de visualización para comprobar
Sí, ¿y qué?
Ayúdame a encontrar un error, sin acción y sin error. ¿Quizá me faltan algunas bibliotecas?
Mi sistema: MT4, Build 451.
Windows 7 Home Base.
Ayúdame a encontrar un error, sin acción y sin error. ¿Quizá me faltan algunas bibliotecas?
Mi sistema: MT4, Build 451.
Windows 7 Home Base.
¿cómo elegir el lote más pequeño entre todas las operaciones abiertas?
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();} }