[¡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 279
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Si lo sabes, hay dos líneas, una que sigue los nuevos máximos en una serie de velas, y la otra que sigue los mínimos. Cuando la distancia entre las líneas es superior a 50, se debe trazar una línea vertical. La línea vertical necesita una coordenada: el tiempo. ¿Cómo puedo dibujar el tiempo cuando la distancia entre las líneas será superior a 50? No se me ocurre nada.
Quería dibujar la línea vertical usando ObjectCreate... Si se puede hacer sin tiempo, ¿qué se debe utilizar?¿Podría haber una función que simplemente detecte que "aún no hay órdenes en el historial del EA"? - Eso sería suficiente.
No lo sé. ¿Quizás alguien de aquí pueda decírnoslo?
Creo que deberíamos intentar modificar la función de Kim. Este:
Es decir, en lugar de MODE_TRADES, tome MODE_HISTORY - es decir, la orden se selecciona entre las órdenes cerradas y borradas.
Entonces (cambiar el nombre de f-i) :
Pruébalo, ¿funcionará o no?
Buenas tardes, amigos.
Por favor, aconséjeme sobre esto.
Por ejemplo, necesito abrir una posición cuando una "vela de precio" ha cruzado una media móvil.
Hasta ahora, sólo sé cómo clasificar las señales cuando una vela cierra/abre por encima/por debajo de la media móvil...
( iMA( .....) >Cerrar[1] o iMA(....) >Abrir[0] )
¿Cómo puedo entrar cuando la vela actual ya está por encima/debajo de la MA, en lugar de esperar a que se cierre la actual y se abra la siguiente, si ya está por encima/debajo de la MA?
Muchas gracias de antemano.
Buenas tardes, amigos.
Por favor, aconséjeme sobre esto.
Por ejemplo, necesito abrir una posición cuando una "vela de precio" ha cruzado una media móvil.
Hasta ahora, sólo sé cómo clasificar las señales cuando una vela cierra/abre por encima/por debajo de la media móvil...
( iMA( .....) >Cerrar[1] o iMA(....) >Abrir[0] )
¿Cómo puedo entrar cuando la vela actual ya está por encima/debajo de la MA, en lugar de esperar a que se cierre la actual y se abra la siguiente, si ya está por encima/debajo de la MA?
No sé qué hacer con él.
¿Qué te parece?
iMA(....) >Abrir[0] ? - cero es la vela actual.
Qué es lo que no le gusta:
iMA(....) >Abrir[0] ? - cero es la vela actual
es cierto, pero, por ejemplo, hay casos en los que, después de abrir por debajo de la MA, el precio luego (normalmente en las noticias) rompe la MA en una vela larga y sube, abajo....
Si utilizamos mi criterio de apertura, podemos pasar por alto tales movimientos...
Por lo tanto, me gustaría abrir una posición si el precio está actualmente por encima/debajo de la media, en lugar de esperar a que ésta se cierre y se abra la siguiente vela.
Esto podría ser :
(Si la MA de la barra anterior es mayor que el precio de cierre de la barra anterior y la MA de la barra actual es menor que el precio de apertura de la barra actual, entonces vende)
Llevo dos días trasteando y no lo consigo. Tomé el código del tutorial de Kovalev e intenté abrir una orden de compra y obtuve la respuesta "Error 130".
Código
nt f_Open_Ord(int Tip)
{
int Ticket, // Número de orden
MN; // MagicNumber
double SL, // StopLoss (valor del precio relativo)
TP; // TakeProf (valor del precio relativo)
//--------------------------------------------------------------- 3 --
while(g_Mas_Tip[Tip]==0) // Mientras .
{ //...sin éxito
if (SL<g_Level_new) // si es menor de lo permitido...
SL=(g_Nivel_nuevo+20); // ... entonces permitido
if (TP<g_Nivel_nuevo)
// Si es menor que el permitido...
TP=(g_Nivel_nuevo+20); // .entonces permitido
MN=TimeCurrent(); // Simple MagicNumber
f_Inform(13,Tip); // Mensaje al intentar abrir
if (Tip==0) // Vamos a abrir Buy
{
SL=Bid - SL*Point; // StopLoss (precio)
SL=NormalizeDouble(SL,Digits);
TP=Bid + TP*Point; // TakeProfit (precio)
TP=NormalizeDouble(TP,Digits);
Ticket=OrderSend(Symbol(),0,g_Lots_New,Ask,5,1.46500,1.47500,",MN);
err=GetLastError();
Comment("número de error ",err);
if (Ticket>0) f_Inform(4);
//if (Ticket<0) f_Inform(25)
Código reelaborado.Todo funciona correctamente.Creo que el error no está en el código. DC-Broco/.
Sorri, eso fue precipitado. Los valores 1.46500 y 1.47500 en la función OrderSend deben cambiarse por SL y TP respectivamente
Sorri, eso fue precipitado. Los valores 1.46500 y 1.47500 en la función OrderSend deben ser sustituidos por SL y TP, respectivamente
¿A qué equivalen el SL y el TP? Si es cero, como en el código anterior, todo es correcto. Debería generarse un error
Los topes se toman de la variable global g_Level_new, que se calcula como g_Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL )