[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 135

 

Hola, he tomado como base el script del tutorial de S. Kovalev. Quiero hacer un Asesor Experto para abrir una operación, poner un stop loss, tomar ganancias, y luego esperar a que la operación se cierre (es decir, el stop loss o las ganancias), y sólo entonces reabrir la operación. Lo he intentado con interrupciones de ciclo y de ciclo. Por favor, aconséjeme cómo hacerlo. He pensado que puede ser más fácil no poner el stop-loss y el take-profit a la vez, y que el precio se cierre cuando se acerque a un determinado nivel. Pero no quiero hacerlo así porque tengo miedo al deslizamiento, y cada punto es importante para mí. Si intento abrir un trato o un par a la vez, no puedo abrir uno nuevo.

//+------------------------------------------------------------------+
int start() //---- función start
{
double //---- declarar variables
x,
y;
//+------------------------------------------------------------------+
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //---- orden de mercado para comprar y poner un stop y beneficio a 15 puntos del precio de apertura
//+------------------------------------------------------------------+
while(x!=Ask-15*Point||y!=Pregunta+15*Punto) //---- de la condición Quiero que la operación se cierre hasta que se cierre la operación anterior, es decirе. es posible
{//----- mantener SOLO una operación abierta
continuar;//---- interrumpir la condición y pasar al siguiente paso
}
//+------------------------------------------------------------------+
return;//---- function return
}
//+------------------------------------------------------------------+

 
YOUNGA:

Sí, sólo los precios abiertos, por eso es importante tenerlo en cuenta al analizar el EA. Por ejemplo, si la cola de una vela rompe su canal, el EA puede no verlo, pero puede cambiar la lógica del programa y resolver el problema.



Gracias.
 

P: Este es un fragmento de código

int init()

{
//----
ShiftSignal=0;
SlowPer=FastPer+AddSlow;
Spread=MarketInfo(Symbol(),MODE_SPREAD);
Comment("ExpertMagicNumber=",ExpertMagicNumber);

if ((FastShift<0)&&(SlowShift>=0))
ShiftSignal=FastShift;

if ((FastShift>=0)&&(SlowShift<0))
ShiftSignal=-SlowShift;

if ((FastShift<0)&&(SlowShift<0))
{
if (MathAbs(FastShift)>MathAbs(SlowShift))

ShiftSignal=-FastShift;
else
ShiftSignal=-SlowShift;
}
//----
return(0)

Me interesa este fragmento

if ((FastShift<0)&&(SlowShift>=0))

ShiftSignal=FastShift;

si FastShift<0, significa que el valor de FastShift es inicialmente igual a un número entero negativo, por ejemplo: -2

entonces en la siguiente línea ShiftSignal=FastShift;

uno pensaría que el valor -2 sería asignado a la variable ShiftSignal en lugar de cero

pero al mismo tiempo te preguntarás por qué hay un menos delante de la variable FastShift

Porque en matemáticas, menos por menos es más, es decir, el valor será "+2", es decir, sólo 2.

Si lo necesitas, puedo enviarte todo el código.

 

Ayúdame a resolver un problema como este.

Hay una señal de compra o venta, Pero la siguiente barra también satisface la condición ya que la señal de la siguiente barra no se considera.

Cómo lo hago, pero no funciona.

if( условие на покупку или продажу)
{          

      if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==true)   // если есть уже ордер то проверяем
        {
                 if (OrderOpenTime()!=Time[1]||OrderOpenTime()!=Time[2]||OrderOpenTime()!=Time[3]) // если открытый ордер имеет значение(OrderOpenTime) не равное времени бару назад и тд. до 3 баров.
                    {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),2,0,0,"ntcn",Magic,0,Blue);  // тогда открываем
                    }
        }


}

Pero no funciona... o cómo se puede hacer de forma diferente???? Le agradecería que compartiera sus conocimientos.

Si alguien está leyendo y se ha enfrentado al mismo problema Aquí está la respuesta:

if( условие на покупку или продажу)
{          

   OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);                                                // проверяем последний ордер
        if(OrderOpenTime()<Time[3])                                                                       // если по времени прошло 3 бара тогда можно открывать новую сделку
           {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,"ntcn",Magic,0,Red); 
           }

}
 
Oleg, la condición no es muy estricta Por ejemplo, empezar a contar las órdenes abiertas, si más de 1, entonces no abrir (tomar las funciones ya hechas en el sitio aquí)
 

Como nadie ha respondido, intentaré reformular mi pregunta.

¿Hay alguna forma de extraer información del indicador compilado, si la función iCastom() sólo da ceros?

 

Hola, aconsejar cómo iniciar el conteo de barras, después de una señal positiva del indicador

- Tengo señal, bahía abierta, sólo después de que las siguientes 2 barras suban .

 
YOUNGA:
Oleg, la condición no es muy estricta, por ejemplo, empezar a contar las órdenes abiertas, si más de 1 no se abren (utilizar funciones listas para usar en este sitio)


Desgraciadamente las señales también se pueden repetir (en el sentido de comprar más, pueden ser una hora más tarde, un día más tarde, etc.) He pasado por OrderComment, bloqueando, pero también hay órdenes repetitivas. Me gustaría bloquear en barras las señales repetidas. Si es a través de Sleepage, el plazo es diferente y 4 horas....

Si no sabe qué hacer con él, obtendrá una respuesta errónea.

 
dertop:


Por desgracia, las señales también pueden ser repetitivas (en el sentido de extra, pueden ser una hora más tarde, un día más tarde, etc.) He pasado por OrderComment, bloque, pero también hay órdenes repetitivas. Me gustaría bloquear en barras las señales repetidas. Si es a través de Sleepage, el plazo es diferente y 4 horas....

Pero gracias por la respuesta.


Buscar la sucursal en el sitio web

Prohibir el comercio en un bar.

 
¡Buenas noches! Por favor, explique el principio del indicador de zigzag. Por ejemplo, los fractales se construyen cuando las dos barras de la izquierda y de la derecha están por encima o por debajo de la actual. ¿En qué se basa el indicador de zigzag? Por favor.