Pregunta sobre el asesor multidivisa - página 10

 
rid >> :
Sin embargo, necesito -al mismo tiempo- que se implemente la función de trailing stop para todos los ticks.

Un beneficio tangible de un arrastre de maceta sólo se puede ver en una sección corta a expensas de la adaptación.

Por regla general, la red de arrastre gruesa es igual de buena (si la red de arrastre no es de pipsing y scalping).

Pero se pierden las ventajas de la optimización del "precio de apertura" cuando se utiliza una red de arrastre, lo cual es muy significativo.

Últimamente he renunciado a los trailing stops en casi todos los TC.

El cierre parcial/completo de la posición (posiblemente por inversión) por señal inversa funciona mejor.

 

Y utilizo una red de arrastre de umbrales. Y si ajustas el umbral de salida, hay una razón...

extern string   ____________= "Параметры Трейлинг стопа";
extern bool UseTrailing = false;
extern int lMinProfit = 150;
extern int sMinProfit = 160;
extern int lTrailingStop = 50;
extern int sTrailingStop = 60;
extern int lTrailingStep = 5;
extern int sTrailingStep = 5;
//--------------------------------------------------------
int start()
  {
  if(Time[0] == prevtime)   return(0);
   prevtime = Time[0];//если появился новый бар , включаемся
//-------------------------------------------------------------------   
if ( UseTrailing) TrailPositions(); //трейлинг стоп

//--------------------------------------------------------------
... ... ... ... ... ... ... ... ... ... ... ... 
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
void TrailPositions() //пороговый трейлинг стоп
{  int Orders = OrdersTotal();
  for (int i=0; i< Orders; i++) {
    if (!(OrderSelect( i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol() && OrderMagicNumber()== Magic) continue; 
    if (OrderType() == OP_BUY) {
      if (Bid-OrderOpenPrice() > lMinProfit*Point) {
        if (OrderStopLoss() < Bid-( lTrailingStop+ lTrailingStep-1)*Point) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid- lTrailingStop*Point,
                                                    OrderTakeProfit(), 0, Blue);
        }}}
    if (OrderType() == OP_SELL) {
      if (OrderOpenPrice()-Ask > sMinProfit*Point) {
        if (OrderStopLoss() > Ask+( sTrailingStop+ sTrailingStep-1)*Point || 
                                                      OrderStopLoss() == 0) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+ sTrailingStop*Point,
                                                     OrderTakeProfit(), 0, Blue);
        }}}}}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
 

En general, no entiendo qué sentido tiene utilizar una red de arrastre de umbrales Potikko.

 

Buenas tardes a todos. Otra vez el problema.

Con el indicador.

No se puede escribir el iCustom.

Lo escribí así:

double ActivatorBLUE=iCustom(NULL,0,"HL Next Activator", ActivatorPeriod, useFullPeriods,0,1);
//синие уровни на 1 баре
double ActivatorRED=iCustom(NULL,0,"HL Next Activator", ActivatorPeriod, useFullPeriods, 1,1);
//красные уровни на 1 баре
Comment( ActivatorBLUE,"-", ActivatorRED);

Pero en ambos casos sólo se devuelven los valores del nivel azul. ¡No entiendo por qué! Al fin y al cabo, he proporcionado números de búferes de 1 y 0 respectivamente.

Incluso en el comentario aparecen los mismos valores - nivel azul

Así es como se definen los buffers en el indicador init :

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexBuffer(0, SellActivator);//синий
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);
   SetIndexBuffer(1, BuyActivator);//красный
   SetIndexEmptyValue(1,0.0);
   if ( useFullPeriods!=0) useFullPeriods=1;
//----
   return(0);
  }

¿Sugerencia de Pozh.? Indicador en la carga (el autor del indicador es Rosh).

Archivos adjuntos:
 
rid писал(а) >>

Buenas tardes a todos. Otra vez el problema.

Con el indicador.

No se puede escribir iCustom.

Lo he comprobado, y se parece a esto:

2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:49 2008.10.28 12:51 testhl EURUSD,H1: 1.2395-0
2008.10.29 15:13:48 2008.10.28 05:52 testhl EURUSD,H1: 0-1.2547
....
2008.10.29 15:13:48 2008.10.28 05:51 testhl EURUSD,H1: 0-1.2547
2008.10.29 15:13:48 2008.10.28 05:51 testhl EURUSD,H1: 0-1.2547
2008.10.29 15:13:47 2008.10.27 18:49 testhl EURUSD,H1: 1.2414-1.2542
.....
2008.10.29 15:13:47 2008.10.27 18:49 testhl EURUSD,H1: 1.2414-1.2542
2008.10.29 15:13:46 2008.10.27 14:54 testhl EURUSD,H1: 0-1.2612

No me he puesto a ello, pero parece que es correcto, he cogido indicador con parámetros por defecto, llamada de valor con cadena

Print(iCustom(NULL,0,"HLdNextmActivator",0,1),"-",iCustom(NULL,0,"HLdNextmActivator", 1,1));
 

Gracias.

Eso es raro. De repente, a mí también me funciona. No lo arregló, no hizo nada.

¡Pero esta mañana no ha funcionado! Me llevó dos horas. "Apuesto..."

No es la primera vez que lo noto. Haré algo sencillo en un pavo sencillo. De repente, ¡no funciona desde el principio!

Sin razón aparente. Aunque la construcción es la más sencilla. Muy bien, supongo. Lo intentaré más tarde...

Y entonces lo enciendo y mira, ¡funciona como debe!

Es como un milagro...

Lo hice una vez con una parabólica. Establezco condiciones para la apertura de una posición al cambiar el "signo" de la parabólica.

Era la condición más primitiva. No funcionó en el probador. Durante dos días, juré que era una falta y traté de averiguar lo que estaba mal. No lo he entendido. No pude resolverlo. Pensé que lo resolvería más tarde. Un día después lo encendí y... - ...funcionaba como un reloj...

 
rid >> :

.............. entonces ... Luego, un día después, lo encendí y... - Veo que funciona como un reloj...

El hombre se acerca al relojero.

- Este se ha roto.

El mecánico abre el reloj y cae una cucaracha muerta.

- Sin embargo, no funcionará.

- ¿Por qué no?

- Sin embargo, el mecánico está muerto.

 

Buenas tardes a todos. No puedo resolver el problema.

El Asesor Experto coloca órdenes pendientes, por ejemplo OP_BUYSTOP - cuatro órdenes

OP_BUYSTOP mágico 1

OP_BUYSTOP magia 2

OP_BUYSTOP magia 3

OP_BUYSTOP mágico 4

Los coloca - a una distancia determinada del precio y a un paso determinado de cada uno.

Además. Si el precio ha bajado, necesito que las órdenes sigan al precio con el paso dado.

Lo he hecho. No hemos tenido ninguna dificultad especial en este sentido.

 

Sin embargo...

No necesito que todas las órdenes se modifiquen y se muevan detrás del precio, atrayendo la atención del broker con peticiones innecesarias al servidor.

Quiero que el pedido más alejado del precio actual salte por encima de todos los demás y se convierta en el más cercano.

Y así sucesivamente, de modo que con un nuevo movimiento del precio a la baja, las órdenes más lejanas se acercarían sistemáticamente al precio.

Llevo varias horas pensando y no consigo acercarme a una solución.

Ni siquiera puedo acercarme a la solución.

¿O tal vez haya una referencia a algo similar?

Encontré la función en una rama de I. Kim. Pero aún no está claro cómo aplicarlos aquí.

//----------------------------------------------------------------------------------------------------------------------------

Función GetIndexByTicket(). Esta función devuelve el índice de la orden o posición por el ticket

La función IndexByTicket(). Esta función devuelve el índice (el número de índice en la lista general de órdenes establecidas o posiciones abiertas) de la orden o posición dentro del ticket

Función GetOrderOpenPrice(). Devuelve el precio establecido del último pedido realizado

 

Crea dos matrices. Una por número de billete, la segunda por precio. A continuación, ordene la matriz por precio, moviendo los números de los billetes al mismo tiempo (sin romper la conexión). Entonces, en un extremo de la matriz estará el precio más bajo y en el otro el más alto. Lo único que queda es cambiar una de las órdenes exteriores.

Razón de la queja: