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
Christoff
De esta manera la variable Decimals debería estar bien
En cualquier caso, comprueba qué código de error estás obteniendo en caso de cierre (parcial) de la orden sin éxitoMladen,
Gracias por la pista.
El problema es que no hay ningún mensaje de error. Cuando no funciona, parece que la función PartialTP ni siquiera ha sido llamada. Otras veces - normalmente en las primeras órdenes después de reiniciar el EA - funciona bien.
He pensado que tal vez una de las variables no vuelve al valor cero, o algo así, pero sigo sin encontrar el error.
Mladen,
Gracias por la sugerencia.
El problema es que no hay ningún mensaje de error. Cuando no funciona, parece que la función PartialTP ni siquiera ha sido llamada. Otras veces - normalmente en las primeras órdenes después de reiniciar el EA - funciona bien.
Pensé que tal vez una de las variables no vuelve al valor cero, o algo así, pero todavía no puedo encontrar el error.chrisstoff
Lo siento, pero con un código parcial no puedo ayudar más
Lo que usted describe significa que hay una necesidad de depurar el código - y que sólo se puede hacer mediante la ejecución, mientras que el uso de algún tipo de puntos de control
chrisstoff
Lo siento, pero con un código parcial no puedo ayudar más
Lo que describes significa que es necesario depurar el código - y eso sólo se puede hacer ejecutándolo mientras se utiliza algún tipo de puntos de controlGracias, Mladen.
Es tranquilizador que no hayas visto problemas en el código.
Creo que todas las partes relevantes del código fueron publicadas, así que tengo que encontrar el error en otra parte.
hock87
Por favor, lea el post anterior a su post para una solución de ese problema
El código completo para eso es el siguiente :
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
Malden,
Si quiero abrir tamaños de lote en un porcentaje del saldo de mi cuenta, ¿cómo codificarlo?
Ejemplo:
El saldo de mi cuenta es de 500$,
Quiero abrir un tamaño de lote con el 5%, a continuación, la cuenta de auto y abrir los lotes de $ 0,25, TP = 10 SL = 20.
¿Cómo codificarlo?
Gracias.
Malden,
Si quiero abrir tamaños de lote en un porcentaje del saldo de mi cuenta, ¿cómo codificarlo?
Ejemplo:
El saldo de mi cuenta es de $500,
Quiero abrir un tamaño de lote con el 5%, a continuación, la cuenta de auto y abrir los lotes de $ 0,25, TP = 10 SL = 20.
¿Cómo codificarlo?
Gracias.Usted puede utilizar una función como esta para que :
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol()l,MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(s_symbol,MODE_TICKVALUE)/pPoint);
}
}
return(MathMax(MathMin(lots,maxLot),minLot));
}
PS: stopLoss tiene que ser pasado a la función en pips/puntos ya (no en valores enteros)
Usted puede utilizar una función como esta para que :
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol()l,MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(s_symbol,MODE_TICKVALUE)/pPoint);
}
}
return(MathMax(MathMin(lots,maxLot),minLot));
}
Gracias, Mladen.
Pero el fracaso para componer el código para comprar código de orden.
Aparecen muchos errores y advertencias.
¿Cómo componerlo?
Gracias.
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}Gracias, Mladen.
Pero no puedo componer el código para comprar el código de la orden.
Aparecen muchos errores y advertencias.
¿Cómo se compone?
Gracias.
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point);
prof=(Ask+profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}Pruebe como esto (lo he probado ahora y funciona) :
extern double profsize = 10;
int err;
int ticket;
double stop;
double prof;
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask-stopsize*Point*MathPow(10,Digits%2));
prof=(Ask+profsize*Point*MathPow(10,Digits%2));
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
}estimado mladen y mr. tools pls,
es posible crear un ea que de señales basadas en ciertas condiciones como las señales de 3 o 4 indicadores que cumplan con condiciones predefinidas.
Por ejemplo
quiero que el ea de una señal de compra hwen:
ema 8 cruza ema 21
qqe por encima de 0
non lag ma es verde
y la vela está por encima de la nube de ichimoku
el EA no debe abrir operaciones sino solo dar la señal cuando se cumplan las condiciones indicadas
Gracias, Mladen.
Lo he probado.
pero todavía abrir los lotes con $ 0.1
Quiero abrirtamaños de lote en un porcentaje de mi saldo de la cuenta.
EX: el balance de la cuenta tiene $500.
abrir un tamaño de lote con el 5%, a continuación, la cuenta de auto y abrir los lotes de $ 0,25, TP = 10 SL = 20.
LotSizeSlot1 = AccountBalance() * (RiskSlot1 / 100)
LotSizeSlot1 = $500*(5%/100)
LotSizeSlot1 = $ 0.25
Entonces se auto abre $ 0,25 lotes y TP = 10 SL = 20.
¿Cómo crearlo?
Gracias.
Gracias, Mladen.
Lo he probado.
pero sigue abriendo los lotes con $0.1
Quiero abrirtamaños de lote en un porcentaje de mi saldo de la cuenta.
Ej: el balance de la cuenta tiene $500.
abrir un tamaño de lote con el 5%, a continuación, la cuenta de auto y abrir los lotes de $ 0,25, TP = 10 SL = 20.
LotSizeSlot1 = AccountBalance() * (RiskSlot1 / 100)
LotSizeSlot1 = $500*(5%/100)
LotSizeSlot1 = $ 0.25
Entonces se auto abre $ 0.25 lotes y TP = 10 SL = 20.
¿Cómo crearlo?
Gracias.Como en el que se adjunta