[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 100

 

¿por qué no se vende la entrada?

condiciones de entrada

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_S=true; // Критерий откр. Sell }

si se establece

rsi >50 comprar

rsi<50 vender

funciona como debería, por lo que hay tanto venta como compra

 
Dimka-novitsek:
El Asesor Experto empezó a funcionar cuando quité los stops a 20 pips del precio, ¡¡¡no más cerca!!! Me preguntaba de dónde viene el error 130, ¿del servidor de intermediación?

Sí, los servidores... El tamaño fijo es bueno, pero es mejor mirar MarketInfo, sólo tiene el nivel de paradas en el momento, puede cambiar. https://docs.mql4.com/ru/constants/marketinfo

MODE_STOPLEVEL14Nivel mínimo de stop loss/take profit en pips
 
Lo recordaré. (probablemente)
 

Chicos, decidme por favor .... El problema es que tengo 5 decimales en el terminal y tengo 5 operaciones abiertas, uso un bucle para cerrar todas las órdenes

El problema es que este bucle cierra los pedidos a diferentes precios. Si tengo 5 pedidos, entonces sólo 3 o 2 de ellos se cierran a un precio y los otros a precios diferentes... Cómo hacer que todas las órdenes se cierren al mismo precio?????

if (сумма по профиту всех сделок >= заданная сумма)

{

for (цикл перебора ордеров)

{

if (проверка на символ)

{

if (ордертип==бай)

{

закрыть ордера по БИД цене 

} 

if (ордертип==сел)

{

закрыть ордера по Аск цене 

}  

} 

} 

} 
 
SeALALex:

Muchas gracias, ya te dije que estoy aprendiendo, puedo hacer una pregunta LotsInitial - ¿para qué? porque construye las órdenes correctamente, no entiendo qué principio abre una orden con tal tamaño de lote?

Un diccionario responderá a su pregunta. ¿Y has mirado el código en absoluto? ¿Por cuánto tiempo? Si es tu código, no tardarás en entender el significado de las 10 líneas añadidas.


vilard:

¿por qué no hay un inicio de sesión de venta?

condiciones de entrada

f2=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,1);
if (f2>0) // buy

{

Opn_B=true; // Критерий откр. Buy
}

if (f2<0) // sell

{

Opn_B=true; // Критерий откр. Buy
}

si se establece

rsi >50 comprar

rsi<50 vender

funciona como debería, por lo que hay tanto venta como compra

¿Dónde ve usted a SELL? :((


VOLDEMAR:

Chicos, por favor, decidme .... tengo un problema con 5 decimales en mi terminal de cliente. 5 operaciones abiertas en un par y uso un bucle para cerrar todas las órdenes

El problema es que este bucle cierra los pedidos a diferentes precios. Si tengo 5 pedidos, entonces sólo 3 o 2 de ellos se cierran a un precio y los otros a precios diferentes... Cómo hacer que todos los pedidos se cierren a un precio?????

Se necesita tiempo para cerrar una orden. Durante este tiempo, el precio puede cambiar fácilmente. La respuesta es obvia.


Gente, una pregunta:

Hay un terminal funcionando en dos ordenadores con la misma cuenta. Supongamos que intentas cerrar dos órdenes diferentes desde distintos ordenadores al mismo tiempo, ¿cuál será la reacción del terminal? :)) ¿"Comercio entonces ocupado"?

Aunque me parece que es lo mismo si abres dos terminales en un ordenador y te conectas a una cuenta, pero no puedes cerrar órdenes de forma sincronizada...

 

Pido disculpas si repito la pregunta, ya que no la encontré en el historial del hilo.

Necesito que el Asesor Experto registre los datos de las ganancias de las órdenes todo el tiempo.

Sería mejor en una mesa.

Para empezar, aquí está el código:

int h=FileOpen("test.txt",FILE_BIN|FILE_WRITE);
   for (int j=0; j<OrdersTotal(); j++)         // По всем ордерам
  {
   if(OrderSelect(j,SELECT_BY_POS)==true)  // Если есть следующ.
     {                                     
      double ТР =    OrderTakeProfit();     // TakeProfit ордера
      double Profit= OrderProfit();         // Прибыль по ордеру
      double Lots  = OrderLots();           // Количество лотов
      //......Использование значений ТР и Profit в программе..... 
      FileWriteInteger(h,Profit,LONG_VALUE);
      FileWrite(h,"\n");
      FileClose(h);
     }
  }     
Вопрос, а где создать файл? как лучше это все реализовать?
 
¡Max7, me interesa saber por qué el indicador no funciona como debería, esos al cruzar "0", repito una vez más, que con el criterio rsi<>50 todo funciona bien!
 
nuan:

Pido disculpas si repito la pregunta, ya que no la encontré en el historial del tema.

Necesito que registre los datos de los beneficios del pedido todo el tiempo.

Sería mejor en una mesa.

Para empezar, aquí está el código:

Cree un archivo antes de querer escribir algo en él.

Cierre el archivo después de que se haya escrito todo en él.

En tu caso las funciones init() y deinit() funcionarán.


vilard:
¡Max7, me interesa saber por qué el indicador no funciona como debería, esos al cruzar "0", repito una vez más que con el criterio rsi<>50 todo funciona bien!

Max7... ¡Qué divertido! :DD


El indicador de índice de fuerza funciona bien. Será mejor que compruebes el código que has escrito antes.

 
He pasado por eso, ¿puedes darme un ejemplo o una función?
 
nuan:
He pasado por eso, ¿puedes darme un ejemplo o una función?

Sí, no he leído bien su pregunta. :)) La respuesta está arriba...

Según su código, el fichero se creará una vez, pero se cerrará tantas veces como pedidos encuentre el bucle.

Y si este código está en la función start(), entonces este problema ocurrirá en cada tick. Y cada vez que se ejecute FileOpen, su archivo se borrará...

También haría bien en escribir OrderSymbol(), OrderTicket(), OrderType() y otra información opcional en el archivo. De lo contrario, ¿cómo se puede distinguir OrderProfit() de los demás? Para ello, sería mejor entrar en un archivo en forma de tabla(FILE_CSV), que se abre fácilmente en Excel.

Razón de la queja: