Funciones útiles de KimIV - página 60

 

Estimado Kim, muchas gracias por tu trabajo. Las funciones que has escrito me facilitan la vida.

¿Tiene una función en su arsenal que devuelve la pérdida total de todas las operaciones perdedoras consecutivas. Supongamos que las tres últimas operaciones se cerraron con pérdidas, quiero saber la pérdida total de las mismas en la moneda del depósito. Para aclarar - exactamente las últimas operaciones perdedoras consecutivas.

Agradeceré la ayuda. Creo que otros pueden necesitar esta función.

 

KimIV

Intenté insertar sus funciones en el Asesor Experto. El compilador escribe la siguiente basura: La función "ClosePositions" no está referenciada y será eliminada del archivo exp.

La función "ExistPositions" no está referenciada y será eliminada del archivo exp.

La función "ManagePositions" no está referenciada y será eliminada del archivo exp ...........................

¿Cuál puede ser el problema?




 
WroC писал(а) >>
El compilador escribe: La función "ClosePositions" no está referenciada y será eliminada del archivo exp.

¿Cuál puede ser el fallo?

No es un error. Es una advertencia de que la función no se utiliza y, por tanto, no tiene sentido compilar su código.

 

¡Igor!

¿Hay alguna novedad o sólo se ha pensado en las funciones de los filtros de tiempo?

Como por ejemplo: para el mes actual, el día, la semana...

o: mes, día, semana, trimestre anterior...

*

Lo ideal sería que se viera así:

// FuncStPeriod(int Per, int Val)
// Где:
// Per = 0-день, 1-неделя, и т.д...
// Val = 0-текущие, 1-прошедший

// пример использования для выбора ордеров за период
if(FuncStPeriod(1, 0)) ...

Lo siento, pero veo que no sale nada...

O tal vez elegí el modelo de filtrado equivocado...

Estoy en un punto muerto... en todo el sentido de la palabra... :)))

 

¡Tú, Vasili, no eres políticamente correcto! La entrada está indicada, pero ¿dónde está la salida?

 

Sé en mi interior que 0,5+0,5 sería un litro.

pero no puedo resolver el problema... (с) )))

*

Estaría muy agradecido por las muestras de pedidos de la historia por su tiempo.

*

Y estos son:

// FuncStPeriod(int Per, int Val)
// Donde:
// Per = 0-día, 1-semana, etc..
// Val = 0-actual, 1-pasado


// ejemplo de uso para seleccionar órdenes para un periodo
if(FuncStPeriod(1, 0)) ...
*

Lo escribí mal, más precisamente, sin explicación...

Los parámetros marcados son sólo parámetros que la función puede tener.

A continuación se muestra un ejemplo de cómo se utiliza esta función...

SI EL TIEMPO DE LOS PEDIDOS ES TAMBIÉN (cae dentro) del periodo de FILTRO

...

 

Vasiliy, vuelves a hablar de la entrada. ¿Qué quiere en la salida y de qué forma?

 

Ahhhh...

Bien, eh... ahí es donde está mi error lógico...

La función devolverá ESO, por ejemplo el número 123456

Lo que necesita para el filtro C y PO es...

*

En general, es lo mismo que el filtro del historial de la cuenta en MT4.

Probablemente, la lista está formada por un ciclo, por ejemplo:

for( ...

if(Valor1 > OrderCloseTime() > Valor2)

...

*

Resulta que esta función debe devolver un valor de cadena (?) para ser sustituido en el filtro if()

for( ...

if(FuncStPeriod(1, 0))

...

*

Mierda. Es complicado en la descripción...

Me he confundido y estás en un aprieto.

:(

 

Bueno, ¡casi lo has conseguido tú mismo! No necesitas ningún filtro. Sólo hay que preparar dos valores de fecha, por ejemplo dt1 y dt2. Organizar un ciclo de oficios cerrados. Seleccione los pedidos por el selector y compruebe su hora de cierre para:

if (OrderCloseTime()> dt1 && OrderCloseTime()< dt2) {
  // что-то делаете с выбранным ордером
}
 

Igor" entiendo que...

Así es como empecé a trabajar.

*

Sin embargo, la tarea consiste en "rellenar" esos mismos dt1 y dt2 con los valores correctos.

Por ejemplo, trimestre, corriente. En idea, la función debería devolver algo así:

OrderCloseTime()>"01.10.2008" && OrderCloseTime()<"04.12.2008"

Tomando hoy como fecha de inicio.

*

Veo el final de la función FuncStPeriod(int Per, int Val) como sigue:

FuncStPeriod(int Per, int Val)
{
string fsp;

//...
fsp="OrderCloseTime()>"+"dt1+" && OrderCloseTime()<"+dt2;
return(fsp);
}

***

Por ejemplo "calculando" el número de meses atrás en relación con el actual:

int KM()
{
int kolm;
kolm=(TimeLocal()-StrToTime("2007.10.01"))/2592000;
return( kolm-1);
} 

pero este enfoque simplista tiene sus trampas,

que se manifestará en el hecho de que es posible identificar erróneamente

al principio de los meses siguientes...