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

 
pavlicos:

Ayuda que puede. Asesor experto en dos divisas,

Si las condiciones comerciales son las mismas, se abre la operación en la primera moneda.

Cómo se escribe "Si la orden se abre en la primera moneda OP_BUY, entonces se abre una operación en la segunda OP_SELL

aquí hay un ejemplo

if (OrdersTotal()== 1 ) // con esta línea para 2 divisas abre ambas órdenes de COMPRA y VENTA o 2 órdenes de VENTA

if ( currenttype == OP_BUY ) // no se abre en absoluto

if ( currentticket == 1) // tampoco se abre así.

secondticket = OrderSend("GBPUSD", OP_SELL, Lots, MarketInfo("GBPUSD", MODE_BID), 2, 0, 0, 0, WindowExpertName(), 0, 0, Red); //Orden para 2 divisas

if ( c - d > a) // si se cumple la condición de negociación, la orden de 1 divisa se abre perfectamente.

currentticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "macd sample",Magic,0,Green); //Order on 1currency

¿Ha comprobado los instrumentos para los que se ha abierto la posición?
 
Lo he intentadoperono se abreen 2 monedas.
 
evillive:
El precio está ahí, la orden pendiente a ese precio ha desaparecido, y la orden de mercado a ese precio ha aparecido. Además, a veces aparece una entrada en el comentario, algo así como "del ticket xxxx", donde xxxx es el número de ticket de la orden pendiente.
Sí, lo tengo. Gracias.
 
int i;
ArraySetAsSeries(ExtMacdBuffer,true);
ArraySetAsSeries(Value,true);
for(i=0;;i++)
ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                 iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
ArrayCopy(Value,ExtMacdBuffer,0,0,WHOLE_ARRAY);

Buenas noches a todos, Ayúdenme, quiero copiar los datos delarray ExtMacdBuffer[] que es la diferencia entre el valor corto y largo de la EMA en el array Value [], escribí arriba y no pasa nada, ¿qué falta? ¿Tal vez no sea correcto en absoluto?

Gracias de antemano por la ayuda.

 
Megagrider:
Aquí puedes ver todo (mira el propio final).
Intenta la igualdad if(iRSI(NULL,0,14,PRICE_CLOSE,0)=70 || iRSI(NULL,0,14,PRICE_CLOSE,1)=70) uno de los dos valores si es igual entonces ....
 
Pokrov:
Intenta la igualdad poniendo if(iRSI(NULL,0,14,PRICE_CLOSE,0)=70 || iRSI(NULL,0,14,PRICE_CLOSE,1)=70) uno de los dos valores si es igual entonces ....
¿Leíste las cartas o leíste los posos del café?
 
No funciona... :(
 
Megagrider:
No funciona... :(
Tampoco debería funcionar. Hay que pensar antes de intentarlo. Vi tu pregunta, pero no noté ningún error, por eso no dije nada. Intente asignar valores a las variables RSI y póngalos en comentarios para mayor claridad. Y utilizar estas variables en la comprobación de condiciones.
 
AlexeyVik:
Y no debería funcionar. Hay que pensar antes de intentarlo. He visto tu pregunta, pero no he notado ningún error, por eso no he dicho nada. Intente asignar valores RSI a las variables y póngalos en el comentario para mayor claridad. Y utilizar estas variables en las comprobaciones de condiciones.
No sé por qué lo dije mal, es porque me faltó preparación técnica, pero la señal llega a 70, funciona, no por encima de 70, tal vez deberías escribir igualdad == , pero no = , eso es un error, estoy de acuerdo. Y en lugar de razonar sobre el café y los mapas, es mejor que ayudes con las matrices.
 
Las variables se mostrarán en el comentario del gráfico y podrá ver cómo cambian. Y el valor del indicador puede ser igual al valor establecido tan raramente que estará esperando este evento. Así que originalmente se escribió correctamente, si la primera barra está por debajo de < 70 y la barra cero está por encima/igual a >=, entonces se ha producido un cruce.