¿Cómo codificar? - página 192

 

...

Eliminado por mladen

Razón : no tiene sentido mostrar lo que puede salir mal

 

Gracias

Gracias....... Roger

 

Necesito ayuda con el código...

gracias chicos...

 

Ayuda por favor

HOLA A TODOS,

Puede alguien por favor ayudar a hacer este indicador no volver a pintar la historia pasada, especialmente si la barra se ha cerrado, el indicador vuelve a pintar a veces 2 a 3 bares en el comercio en vivo después de las velas se han cerrado y si es posible una alerta que se añade a it.thanks de antemano.

 

necesito ayuda con el código..

Hola compañeros,

No soy programador, pero agradecería mucho si alguien me puede ayudar con este tema.

Como puedo reescribir este código para que haga lo siguiente;

if (Total de pedidos abiertos = 0)

entonces

lote = Tipo1Lote(tipo_orden);

si (Orden abierta total = 1)

entonces

lote = Tipo2Lote(tipo_orden);

si (Orden abierta total > 2)

entonces

lote = Tipo3Lote(tipo_orden);

Gracias a todos.

Apreciamos

 

¿Hay una forma mejor de codificar?

He codificado un indi que pone los máximos y mínimos del swing en el gráfico y necesito saber el último de cada uno de ellos antes de continuar. Este es mi intento de buscar estos dos precios (por eso necesito ayuda).

La mayoría de las veces esto funciona, pero hoy estaba diciendo que el último swing high era en realidad el segundo último swing high.

¿Podría alguien mirar esto y ver si hay una mejor manera de codificar esta parte?

Gracias por cualquier ayuda.

int highbar,lowbar,i,n;

double curlow=0,curhigh=0;

for (i=200;i>=1;i--)

{

if (High<High && High<High && High && High<High)

{

curhigh=High;

highbar=i+2;

}

if (Low>Low && Low>Low && Low>Low && Low>Low)

{

curlow=Low

lowbar=i+2;

}

}

//----comprobar si hay vela superior/inferior desde el último fractal----------

n=MathMax(highbar,lowbar );

for (int x=n-1;x>=0;x--)

{

if (High[x]> curhigh)

{

curhigh=Alto[x];

curhigh=x;

}

if (Low[x]< curlow)

{

curlow=Low[x];

lowbar=x;

}

}

Parece que las sangrías no se han pegado bien, lo siento.

 
forexarchitect:
Hola compañeros,

No soy programador, pero agradecería mucho si alguien me puede ayudar con este tema.

¿Cómo puedo reescribir este código para que haga lo siguiente?

if (Total de pedidos abiertos = 0)

entonces

lote = Tipo1Lote(tipo_orden);

si (Orden abierta total = 1)

entonces

lote = Tipo2Lote(tipo_orden);

si (Orden abierta total > 2)

entonces

lote = Tipo3Lote(tipo_orden);

Gracias a todos.

Apreciar

No soy de ninguna manera un experto en codificación pero creo que necesitas hacer un bucle a través de todas tus órdenes y contar qué órdenes cumplen con tus especificaciones. Luego, utilice una sentencia if diferente para los distintos tipos de pedidos.

int total=OrdersTotal(),totalBuy,totalSell;

for (int q=0; q<total; q++ )

{

OrderSelect(q,SELECT_BY_TICKET,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)

totalBuy++;

else if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)

totalSell++;

}

Aquí estoy seleccionando qué tickets contar por número mágico, y también contando el número de cortos, y el número de largos. Puede utilizar el código anterior como ejemplo.

 

Colocar orden limitada en niveles de 50 y 100 psico

Hola, estaba buscando un poco de ayuda con mi código. ¿Sería este el código a utilizar para colocar una orden limitada de mercado en los niveles 50 y 100 redondos de un par de divisas. Quiero colocar una orden en los niveles 50 y 100 por encima y por debajo del Ask/Bid actual.

if (Point == 0.00001) Poin = 0.0001; //6 digits

else if (Point == 0.001) Poin = 0.01; //3 digits (for Yen based pairs)

else Poin = Point; //Normal

for(double q=Ask*Poin,q<Ask+100*Poin,q++)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

for(double q=Bid*Poin,q>Bid-100*Poin,q--)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

Cualquier ayuda será apreciada.

 

Indicador de color de barra

Hola, ¿puede alguien ayudar con un indicador de MT4?

No estoy seguro de que se pueda hacer pero necesito que las barras se vuelvan a colorear.

R1 = valor más bajo de las últimas 20 barras + (2*ATR(10))

R2 = valor más alto de las últimas 20 barras - (2*ATR(10))

Si el precio de cierre es mayor que R1 entonces colorea la barra como.... de un azul brillante.

Si el precio de cierre de la barra anterior es menor que R2 entonces colorea la barra como.... FireBrick

Gracias

A

 

sigo buscando un ejemplo de código de EA que abra más de 1 orden

Sólo quiero abrir 2 órdenes a la vez, 1 con tp y 1 sin y luego NUNCA abrir otra en esa dirección hasta que las condiciones cambien para abrir en contrario. luego cerrar todas y repetir en contrario.

Estoy intentando por todos los medios codificarlo pero...FAIL hasta ahora.

Los mayores problemas son que 1 posición se abre al cierre del palo de la vela...luego la 2ª se abre al cierre del palo de la vela SIGUIENTE. También obtengo más de 2 posiciones abiertas a veces y obtengo una nueva posición cada vez que la primera alcanza el TP. TODO ES MUY MALO.

aquí está el código de la orden de compra y la venta es básicamente la misma...

CUALQUIER TIPS sería útil, estoy dispuesto a escribir el código

Incluso un EA que hace esto que puedo mirar para los ejemplos..

Creo que esta idea es muy importante y debería incorporarse a MUCHOS EA's diversos para la gestión del dinero.

GRACIAS TONTO

si ( ) {

Closebuy = True;

MAcrossDown = True;

MAcrossUP= Falso;

OrdertotalCloseBuy = OrdersTotal();

int IntentosCierreCompra = 0;

bool OrderCloseBuy = False;

bool PositionClosedBuy = False;

if(OrdersTotal() > 0 ){

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);

if(OrderType() == OP_BUY){

for (int i = OrdertotalCloseBuy-1; i >= 0; i --) {

PositionClosedBuy = False;

IntentosCierreCompra = 0;

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

while (!PositionClosedBuy && AttemptsTriedCloseBuy < CloseposnAttempts) {

AttemptsTriedCloseBuy = AttemptsTriedCloseBuy + 1;

OrderCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, LimeGreen);

Sleep(PausebetweenOrders * 1000);

if(OrderCloseBuy == True) { // Posición cerrada con éxito.

PositionClosedBuy = True;

// si (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

} else if( Order == False && AttemptsTried >= CloseposnAttempts ) {

Print( AttemptsTried + " intentos de cierre de la orden de mercado " +

OrderTicket() + " falló. Error [ " + GetLastError() + " ]";

// si (SignalMail) SendMail( AttemptsTried, " attempts to close Buy Market order Failed" );

} // End If, Order:

} // End While Loop, AccountAvailable:

}//para

}//si ordertype

}//si orderstotal

Sleep(1000);

if(OrdersTotal() == 0 && Closebuy == True && Sell_Complete_Wait4Cross_Up == False) {

SellTicket1 = False;

SellTicket1 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, Bid - TakeProfit * Point, "SELL(#" + MagicNumber + ")", MagicNumber, 0, Red);

Sleep(PausebetweenOrders * 1000);

Sell_Complete_Wait4Cross_Up = True;

Buy_Complete_Wait4Cross_Down = False;

if (Ticket && SignalMail) SendMail("[Alerta de señal]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 1st Sell");

Sleep(1000);

SellTicket2 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, 0, "2nd SELL(#" + MagicNumber + ")", MagicNumber, 0, Pink);

Sleep(PausebetweenOrders * 1000);

if (Ticket2 && SignalMail) SendMail("[Alerta de señal]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 2nd Sell");

if(OrdersTotal() == 2 && MAcrossDown == True) {Sell_Complete_Wait4Cross_Up = True; Buy_Complete_Wait4Cross_Down = False;}

}//Ordersend

} //CerrarCompra

Razón de la queja: