[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 841

 
etroplus:

Por favor, aconséjeme.

¿Existe una función que devuelva el valor del beneficio de una posición abierta en pips?

(Bid - OrderOpenPrice())/Point;    //для ордеров BUY
(OrderOpenPrice() - Ask)/Point;    //для ордеров SELL
 
webgreck:

comprobar si ha habido un cambio de fecha y utilizar las funciones

MarketInfo(Symbol(),MODE_SWAPSHORT);
MarketInfo(Symbol(),MODE_SWAPLONG);
 
alsu:

comprobar si la fecha ha cambiado y utilizar las funciones


¿Cómo puedes controlar la fecha? No cambia. Mira la captura de pantalla.

 
webgreck:


Tengo un montón de órdenes que necesitan ser trabajadas de manera diferente qué tipo de trailing qué tipo de objetivos fijos y establecer la paridad, pero no puedo hacer frente a esta tarea porque después de que el acuerdo se cierra y se abre debido a la permuta, cambia el número de billete, por lo que no puedo utilizar el número de billete para identificar la posición para saber qué hacer con él.

Por favor, aconsejen cómo tratar con el swap y cómo identificar una operación y saber si ya he puesto la paridad en ella o no, etc.


En estos casos puede utilizar activamente el "número mágico de pedido".
 
abolk:

En estos casos, se puede utilizar activamente el Orden Numérico Mágico.

Ya uso el número mágico para identificar los tres tipos de señales ... Si ya he colocado la paridad para una pose, probablemente debería pensar en una forma de utilizar el número mágico para determinar si ya he colocado la paridad. Por ejemplo, podemos dar un valor de número mágico a un pedido, pero hasta donde yo sé, no podemos editar el número mágico... ¿o me equivoco? sólo podemos darle un valor al establecer la orden, pero ¿qué podemos escribir en el número mágico, para poder comprobar si la paridad ya ha sido establecida para la orden?
 
webgreck:

Ya lo uso para identificar los tres tipos de señales ... Si su algoritmo está estrechamente relacionado con la identificación de órdenes, entonces necesito conocer su algoritmo para que me ayude en este caso.

Si su algoritmo está estrechamente relacionado con la identificación de órdenes, entonces necesito conocer su algoritmo para ayudarle en este caso.
 
abolk:

Si su algoritmo está estrechamente relacionado con la identificación de órdenes, entonces para ayudarle en este caso, necesitamos conocer su algoritmo.


El sistema es bastante complicado y difícil de describir en dos palabras. Tampoco quiero publicar el código ya que hay miles de líneas de código y nadie las entenderá ni se preocupará por ellas...

Pensé que había algunos métodos flexibles comunes para implementar la identificación del orden ... El número mágico es básicamente para lo que sirve, pero no se puede editar para recordar que el pedido ya se ha hecho tal o cual ...

¿Quizás todavía es posible editar un número mágico?

 
webgreck:


¿Cómo se controla la fecha? No cambia. Mira la captura de pantalla.

¿cómo no cambia? en su captura de pantalla fue el 13 de enero, a las 00:00 14º swap floz - swap open
 
webgreck:


Sí, esta es la pregunta que me temía) porque el algoritmo no es sencillo... el sistema es bastante complejo y no se puede describir en 2 palabras. Y poner el código tampoco tiene sentido ya que hay miles de líneas de código y nadie va a entender y profundizar en ellas...

He pensado que hay algunos trucos flexibles comunes para implementar la identificación de los pedidos ... Tenemos un número mágico para este propósito, pero no podemos editarlo para recordar lo que ya se ha hecho con esta orden ...

¿Tal vez sea posible editar el número mágico de un pedido?


Y conviertes el tiempo de apertura en int - ahí tienes dos magos para una posición. Si no has establecido la paridad, sólo hay magik. Si ya ha establecido la paridad, la variable responsable de la presencia de la paridad establecida será igual al tiempo de apertura de la posición, que se denota por int y la posición tendrá un número mágico... :)
Baila desde allí...
 

¡Hola!

No puedo entender por qué las órdenes abiertas no se modifican, la condición de modificación es un beneficio superior a 5 pips.

//+------------------------------------------------------------------+
|| Noticias comercio.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net"


extern bool In_BUYSTOP=true;
extern intProfit_buy=100;
extern int StopLoss_buy=5;
extern double Lotes_compra=0,01;
//+------------------------------------------------------------------+
extern bool In_SELLSTOP =true;
extern inttern Beneficio_venta=100;
extern int StopLoss_sell =5;
extern double Lots_sell =0,01;
extern int LevelProfit = 25; // - Nivel de beneficio en puntos, que es necesario alcanzar para trasladar su stop al nivel de Breakeven.
extern int LevelWLoss = 1; // - Nivel de equilibrio en puntos, al que se moverá la posición de stop después de que su beneficio alcance el nivel LevelProfit en puntos.

//+------------------------------------------------------------------+
//| función de inicialización de expertos |
//+------------------------------------------------------------------+
int init()
{
//----
int profitbuy=((Bid - OrderOpenPrice())/Point); // BUY
int profitsell=((OrderOpenPrice()- Ask)/Point); // VENDER
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int inicio()
//----
{
int ticket;
if (Oferta >iHigh(NULL,PERIOD_D1,1))
{
if(PedidosTotal() < 1)
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots_sell,iHigh(NULL,PERIOD_D1,1),3,iHigh(NULL,PERIOD_D1,1)+StopLoss_sell*Point,iHigh(NULL,PERIOD_D1,1)-TakeProfit_sell*Point,Hour() == 21 && Minute() == 59);
if(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==true)
{
int profitsell=((OrderOpenPrice()- Ask)/Point);
si (beneficios>5)
ticket=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,Blue);
return(0);
}
}
if (Ask <iLow(NULL,PERIOD_D1,1))
{
if(PedidosTotal() < 1)
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots_buy,iLow(NULL,PERIOD_D1,1),3,iLow(NULL,PERIOD_D1,1)-StopLoss_buy*Point,iLow(NULL,PERIOD_D1,1)+TakeProfit_buy*Point,Hour() == 21 && Minute() == 59);
if(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==true)
{
int profitbuy=((Bid - OrderOpenPrice())/Punto);
si (profitbuy>5)
int stopmodify=OrderOpenPrice();
OrderModify(OrderTicket(),OrderOpenPrice(),stopmodify,OrderTakeProfit(),0,Blue);
return(0);
}
}
return(0);
}
//+------------------------------------------------------------------+