La función DeleteOrders() sirve para eliminar las órdenes pendientes BuyLimit, BuyStop, SellLimit y SellStop. La función DeleteOrders() es universal, es decir, puede utilizarse para eliminar todas las órdenes pendientes ya colocadas, así como las específicas que cumplan las condiciones de selección establecidas mediante los parámetros de la función:
sy - Nombre del instrumento. Dado que en el probador sólo se puede negociar el símbolo actual, este parámetro no es relevante para la versión del probador y sólo es necesario para la compatibilidad con la versión en línea de esta función. Es mejor utilizar los valores "" o NULL en el probador. El valor por defecto "" significa cualquier símbolo. op - Tipo de operación comercial, tipo de orden pendiente. Es posible uno de los cinco valores: -1, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT o OP_SELLSTOP. El valor por defecto de -1 significa cualquier orden. mn - MagicNumber, número de identificación de la orden pendiente. Valor por defecto -1 - significa cualquier magik.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 13.06.2007 |//| Описание : Удаление ордеров. Версия функции для тестов на истории. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| op - операция ( -1 - любой ордер) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+voidDeleteOrders(stringsy="", intop=-1, intmn=-1){ inti, k=OrdersTotal(), ot;
if(sy=="" || sy=="0")sy=Symbol();
for(i=0; i<k; i++){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ ot=OrderType();
if(ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP){ if(OrderSymbol()==sy && (op<0 || ot==op)){ if(mn<0 || OrderMagicNumber()==mn){ OrderDelete(OrderTicket(), clDelete);
} } } } }}
Todo hombre tiene derecho a la izquierda... hee... Voy a divertirme un poco con esto
Ilnar, en el tema Órdenes pendientes en fractales, preguntó, ¿Cómo hacer órdenes pendientes en fractales?
Supongo que Ilnar tuvo alguna dificultad para detectar los niveles de precios de los fractales. Por eso sugiero utilizar mi función:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Поиск ближайшего фрактала. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| mode - тип фрактала (MODE_LOWER|MODE_UPPER) |//+----------------------------------------------------------------------------+doubleFindNearFractal(stringsy="0", inttf=0, intmode=MODE_LOWER){ if(sy=="" || sy=="0")sy=Symbol();
doublef=0;
intd=MarketInfo(sy, MODE_DIGITS), s;
if(d==0)if(StringFind(sy, "JPY")<0)d=4; elsed=2;
for(s=2; s<100; s++){ f=iFractals(sy, tf, mode, s);
if(f!=0)return(NormalizeDouble(f, d));
} Print("FindNearFractal(): Фрактал не найден");
return(0);
}
La función FindNearFractal() busca el fractal más cercano del tipo especificado en el símbolo especificado, en el marco temporal dado, y devuelve su nivel de precios. Conociendo el nivel de precios de la ubicación del fractal, ya es fácil establecer una orden a este nivel.
No sé... Tuve un caso en mi consulta en el que era d=0. Tuve que realizar una comprobación para que fuera igual a cero. Desde entonces, he arrastrado este código a todas partes. Tal vez sea innecesario, pero creo que es mejor ser demasiado que demasiado poco.
A este ritmo, nunca llegaremos a la biblioteca. Tendremos que ir a la biblioteca después de todo. Si me invitas. No voy sin invitación.
Vitek, ¿cuál es el problema? Claro, ven a cavar el jardín pronto... puedes ayudar...
No hay problema con el jardín, aunque no tengo la edad adecuada. Tal vez podríamos conseguir a alguien más joven para el trabajo. Iremos a los baños y tomaremos un poco de kvass (eres alérgico, yo también lo era). Veremos cómo trabajan los jóvenes. No sería serio.
¡Gracias KimIV!
Función DeleteOrders(). Versión de prueba.
La función DeleteOrders() sirve para eliminar las órdenes pendientes BuyLimit, BuyStop, SellLimit y SellStop. La función DeleteOrders() es universal, es decir, puede utilizarse para eliminar todas las órdenes pendientes ya colocadas, así como las específicas que cumplan las condiciones de selección establecidas mediante los parámetros de la función:
sy - Nombre del instrumento. Dado que en el probador sólo se puede negociar el símbolo actual, este parámetro no es relevante para la versión del probador y sólo es necesario para la compatibilidad con la versión en línea de esta función. Es mejor utilizar los valores "" o NULL en el probador. El valor por defecto "" significa cualquier símbolo.
op - Tipo de operación comercial, tipo de orden pendiente. Es posible uno de los cinco valores: -1, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT o OP_SELLSTOP. El valor por defecto de -1 significa cualquier orden.
mn - MagicNumber, número de identificación de la orden pendiente. Valor por defecto -1 - significa cualquier magik.
Función DeleteOrders(). Versión en línea.
Ejemplos de cómo utilizar la función DeleteOrders().
1. Borrar todos los pedidos:
2. Eliminar todas las órdenes de BuyStop:3. Eliminar todos los pedidos con la magia 123456:
ZY. En el tráiler hay un guión de trabajo con los mismos ejemplos.
Ejemplos de cómo utilizar la función DeleteOrders().
Ilnar, en el tema Órdenes pendientes en fractales, preguntó, ¿Cómo hacer órdenes pendientes en fractales?
Supongo que Ilnar tuvo alguna dificultad para detectar los niveles de precios de los fractales. Por eso sugiero utilizar mi función:
La función FindNearFractal() busca el fractal más cercano del tipo especificado en el símbolo especificado, en el marco temporal dado, y devuelve su nivel de precios. Conociendo el nivel de precios de la ubicación del fractal, ya es fácil establecer una orden a este nivel.
Ejemplos de uso de DeleteOrders().
Vitek, ¿cuál es el problema? Claro, ven a cavar el jardín pronto... puedes ayudar...
Ejemplos de uso de DeleteOrders().
Vitek, ¿cuál es el problema? Claro, ven a cavar el jardín pronto... puedes ayudar...