[¡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 947

 

Amigos, por favor aconsejen, estoy teniendo problemas para implementar TrailingStop.... (tratando de escribir un EA)

Estoy utilizando una plataforma Alpari MT4 con la función Trailing Stop (es decir, puedo poner un Trailing Stop de 18 pips). Pregunta para aclarar, ¿es posible utilizar la funcionalidad de la plataforma al abrir una orden (por ejemplo, poner programáticamente un tick TrailingStop)?

 
001:

Parece que funciona, pero por alguna razón abre dos posiciones opuestas.


Así que usted está confundido acerca de algo - estos son recortes de mi código "avalancha" - para usted con cambios menores. Todo funciona bien para mí. Mira adicionalmente este (fragmento similar) aquí - todo funciona bien, busca tu error, está bien... Esta es la versión básica de Avalanche - está todo detallado aquí - para ti (como lo necesitas) estoy seguro que especial

No sería difícil de rehacer, hay un fragmento similar...

Archivos adjuntos:
av02.mq4  17 kb
 
artmedia70:
La lógica es tan simple como el 2x2:
1. Primero se determina que la postura anterior está cerrada en el pie.
2. A continuación, se comprueba la ausencia de posición opuesta ya abierta
Y luego, después de haber determinado que aún no está allí - lo abres (la posición opuesta que cerró en la parada).

Hay una pequeña omisión aquí. Cuando la posición contraria se abre, y luego se cierra en la parada o toma, las condiciones de apertura aparecerán de nuevo. Y necesito UNA vez.
 

¿Estoy entendiendo bien los datos? Lo pregunto porque no funciona. No hay errores durante la compilación. Por eso creo que hay algo que falla en la lógica. Compruébalo.

La imagen muestra sólo dos barras, aunque hay más.

Indicador FX Fish. Necesito señales de compra - en la primera barra el histograma es más alto que el nivel de compra y el histograma de la primera barra es más alto que la segunda.

en venta - en la primera barra, el histograma es inferior al nivel de venta y el histograma de la primera barra es inferior al histograma de la segunda barra

Escribí el código así

      double fx_fishUp1=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,0,1);
      double fx_fishUp2=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,0,2);
      double fx_fishDn1=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,1,1);
      double fx_fishDn2=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,1,2);
      
      if(fx_fishUp1-UpLevel>0 && fx_fishUp1-fx_fishUp2>0){fx_fUp=true; fx_fDown=false;}
      if(DnLevel-fx_fishDn1<0 && fx_fishDn2-fx_fishDn1<0){fx_fDown=true; fx_fDown=false;}


      if(fx_fUp) res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);    
        
      if(fx_fDown) res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
                 
Archivos adjuntos:
fxdfish.mq4  5 kb
 
Una pregunta más. Adjunté el archivo FX Fish. Tiene el mismo nombre en la carpeta de indicadores, pero después de adjuntarlo, apareció el nuevo nombre FXdFish.mq4.
 
Roman.:


Así que usted está confundido acerca de algo - estos son recortes de mi código "avalancha" - a usted con pequeñas modificaciones. Todo funciona bien para mí. Mire adicionalmente este (fragmento similar) aquí - todo funciona bien, busque su error, todo está bien... Esta es la versión básica de Avalanche - aquí todo está detallado - para usted (como usted necesita) estoy seguro, un especial

difícil de rehacer, tal fragmento está presente...


Esto es lo que tengo. Lo he quitado:

1.lotes = NormalizarLotes(lotes); poner un 0,1 fijo

2.He fijado si (lastType == OP_SELL) OrderSend(Symbol(), OP_BUY, lotes,...); ya que estoy probando los largos primero.

Eso es todo.

Archivos adjuntos:
2.mq4  3 kb
 
001:

Aquí hay una pequeña omisión. Cuando la postura contraria se abre y luego se cierra en la parada o en la toma, las condiciones de apertura volverán a surgir. Y necesito UNA vez.


Anote las condiciones normales de apertura, lo que significa UNA vez - por día, por segundo, en general en los oficios...

Formular condiciones de apertura NORMALES y escribir, por ejemplo - introducir un límite de tiempo, digamos que si una orden ya se ha abierto dentro de un día, entonces las órdenes posteriores no se abrirán - esto es el comercio una vez al día - el límite de tiempo para el EA - ya publicado en este hilo, utilice la búsqueda, por ejemplo, formular el código de abajo en la condición de apertura, es decir, si en este rango de tiempo ya estaba negociando, entonces las órdenes posteriores no se abrirán, etc. Formular específicamente lo que necesitas, no incomprensible como "UNA vez", que es una vez en la vida? Formular condiciones comerciales normales, no joderse los sesos. Por no hablar de la página web - este hilo ya lo tiene todo...

2. Подскажите, пожалуйста, как сделать, чтобы советник прекращал торговать в 21 ч00 мин и потом начинал только в 01 ч00 мин следующего дня. 

int start()
  { 

   if (Hour()>20 && Hour<2) return(0);

.....

  }
 
Roman.:


Anote las condiciones normales de apertura, lo que significa UNA vez - por día, por segundo, en general en los oficios...

Formular condiciones de apertura NORMALES y escribir, por ejemplo - introducir un límite de tiempo, digamos que si una orden ya se ha abierto dentro de un día, entonces las órdenes posteriores no se abrirán - esto es el comercio una vez al día - el límite de tiempo para el EA - ya publicado en este hilo, utilice la búsqueda, por ejemplo, formular el código de abajo en la condición de apertura, es decir, si en este rango de tiempo ya estaba negociando, entonces las órdenes posteriores no se abrirán, etc. Formular específicamente lo que necesita, no incomprensible como "UNA vez", que es una vez en la vida? Formular condiciones comerciales normales, no joderse los sesos. Por no hablar de la página web - este hilo ya lo tiene todo...

001:

Tratando de implementar un simple giro. Cuando se alcanza una posición de parada --> abrir la posición contraria. No consigo que se abra la posición contraria una vez y no se abra nada más. Por favor, avisa.

Cuando una posición llega a un tope . Hay una posición, tiene un tope. Cuando el precio alcance el stop, abra la posición contraria. No abra nada más en la primera posición.
 
001:
Cuando una posición llega a un tope . Hay una posición, tiene un tope. Cuando el precio alcance el stop, abra la posición contraria. No abra nada más en la primera posición.

El sitio web https://www.mql5.com/go?link=http://www.kimiv.ru// tiene una función que define exactamente cómo se debe cerrar una orden con un stop loss. Es decir, cuando conecte esta función, debe prescribir la condición si la posición se cierra después de alcanzar el stop loss, si es así, debe abrir la posición contraria y añadir la condición de su apertura única en la condición de su posición básica...
 
¿Hay alguna documentación adicional sobre los nombres de todos los elementos utilizados en el programa? Por ejemplo: case, switch, os, bool, ++, ==, Teniendo algunos conocimientos te pones a inventar una rueda, y luego resulta que hay una función especial que resuelve este problema. Según entendí en el tutorial no todo, y ¿cómo buscar algo que ni siquiera puedes adivinar?
Razón de la queja: