Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 372

 
Ekburg:

¿Y qué? ¿Funciona?)


Bueno, sí. Puedes comprobarlo tú mismo=) pon la cantidad por encima de 700 dólares y pruébalo=) Intervalo de 5 minutos

También puedes modificarlo y hacer que se inicie cada noche por sí mismo =)

 
SpikeOne:


Bueno, sí. Puedes comprobarlo tú mismo=) pon la cantidad por encima de 700 dólares y pruébalo=) Intervalo de 5 minutos

También puedes modificarlo y hacer que se inicie cada noche por sí mismo=)


Ya veo))) Pues buena suerte entonces en la conquista de las alturas rentables))
 

Hola.

Si lo he probado así, la orden pondrá el valor de la barra anterior como TakeProfit... Lo he probado de las dos maneras... La orden nunca ve la variable y se la salta... Como resultado, TP se pone a 0 o 1 o 2...

probado todo lo que vino a mi cabeza no funciona.... Lo que no está claro es que si sustituyo "TP =" por Print lo escribe todo... Ayuda a un principiante.... Le estaré muy agradecido.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP = ((Alta[i]- Baja[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________

 
PaMyC:

Hola.

Si lo he probado así, la orden pondrá el valor de la barra anterior como TakeProfit... Lo he probado de las dos maneras... La orden nunca ve la variable y se la salta... Como resultado, TP se pone a 0 o 1 o 2...

probado todo lo que vino a la mente no funciona.... Lo que no está claro es que si sustituyo "TP =" por Print lo escribe todo... Ayuda a un principiante.... Le estaré muy agradecido.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue);

_______________________________________________________________________________________

for (int i=1;i<=1;i++)

TP = ((Alta[i]- Baja[i])*3);

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue);

____________________________________________________________________________________________



El thp en OrderSend() no es el número de puntos, sino el precio al que se cerrará la orden, y cuando se establece el thp es necesario recordar sobre el nivel de congelación (cada DTZ tiene sus propios problemas).

puede ser útil, gracias Artem.

artmedia70 15.12.2013 22:34 #

También hay un StopLevel no contabilizado. Si no lo sabe, puede ser igual a cero y entonces se calcula de forma diferente. En Alpari, por ejemplo, siempre es cero, pero hay límites y se cuentan como spread*2

Por lo tanto, primero hay que definir el StopLevel:

A nivel mundial:

int level=0, sp=0;

Entonces en start() :

   sp=MarketInfo(sy,MODE_SPREAD);
//-------------- Проверка StopLevel ---------------
   level=MarketInfo(sy,MODE_STOPLEVEL );           // Значение уровня установки стопов
   if (level==0) level=sp*2;

Y luego ya comparar el tamaño de la orden de stop con el nivel recibido y utilizar los valores correctos calculados para las órdenes de stop:

//+----------------------------------------------------------------------------+
   double pa=MarketInfo(Symbol(),MODE_ASK),  // цена Ask
          pb=MarketInfo(Symbol(),MODE_BID),  // цена Bid
          sl=0, tp=0;
   if(OrderType()==OP_BUY) {
      sl=NormalizeDouble(MathMin(pb-StopLoss*Point,pb-(level+1)*Point),Digits);
      tp=NormalizeDouble(MathMax(pb+TakeProfit*Point,pb+(level+1)*Point),Digits);
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
   if(OrderType()==OP_SELL) {
      sl=NormalizeDouble(MathMax(pa+StopLoss*Point,pa+(level+1)*Point),Digits());
      tp=NormalizeDouble(MathMin(pa-TakeProfit*Point,pa-(level+1)*Point),Digits());
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
//+----------------------------------------------------------------------------+

 

Tampoco tenía sólo artículos en mi código, tenía un valor de precio...

Creo que entiendo lo que dice su código, pero ¿cómo debería ayudar...?

 
PaMyC:

Tampoco tenía sólo artículos en mi código, tenía un valor de precio...

Creo que entiendo lo que está escrito en su código, pero ¿cómo debería ayudar...?


explicar

dado:

Bajo=1,3674

Alto=1,3811

Pregunta=1,3734

Sus cálculos:

Pregunta +((Alta[1]-Baja[1])*3)*Punto = 1,3734+((1,3811-1,3674)*3)*Punto = 1,3734+(0,0137*3)*Punto = 1,3734+(0,0411)*Punto = 1,3734+411 = 412,3734 - no me parece una buena cotización)

sólo hay que quitar la multiplicación por el punto y ya está)

 
PaMyC:

Tampoco tenía sólo artículos en mi código, tenía un valor de precio...

Creo que entiendo lo que dice tu código, pero ¿cómo debería ayudar...?


Puedes imprimir TP normalmente, pero cuando haces un pedido, lo multiplicas por un punto y lo lías todo...
 
PaMyC:

Tampoco tenía sólo artículos en mi código, tenía un valor de precio...

Creo que entiendo lo que dice su código, pero ¿cómo debería ayudar...?


O tal vez no sea un número grande, sino más bien uno muy pequeño, por eso se pone el TP a 0 o 1.
 
vadynik:
¿Puedes decirme cómo hacer un seguimiento virtual, cómo reemplazar OrderModify()?


Tengo un bloque con trailing para un robot, tanto normal como el mío específico (para movimientos de noticias)

Puedo enviárselo, pero depende de usted).

 
Ekburg:

Imprimes el TP normalmente, pero al hacer el pedido, de nuevo, multiplicas por el punto y lo lías todo...


Muchas gracias, me ha ayudado), acabo de quitar el punto y milagros todo hecho))))

Como pensaba que el error era muy pequeño, pero tan desagradable...