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
En este indicador, hay algunos problemas cuando se utilizan las cotizaciones de 4 dígitos. Pero no es crítico, el problema es la escala a 4 dígitos al nivel de 100, trató de mostrar las imágenes, mirando en el momento adecuado es muy forzar la vista (después de unos días, ya sea como un hilo para cambiar la escala al nivel de 40 - sería mejor ser visto histogramas y esquina derecha del texto que indicaría el valor actual?
Оставлю оригинальный текст на русском, тк возможны искажения при переводе(
У этого индикатора есть некоторые проблемы при использовании 4 значных котировок. Но это не критично, самая проблемы это масштабирование на 4 значном до уровня 100, постарался показать на картинках, разглядывать нужный момент весьма напрягает глаза( после нескольких дней, можно ли как нить поменять масштаб до уровня 40 - что бы лучше было видно гистограммы и в правом углу текстом что бы обозначалось текущее значение? Еще не могу понять почему появляються черные гистограммы поверх при увеличении (
Mladen,
Estoy trabajando con MT5.
Tengo esta " función trailing simple" que necesito convertir en "trailing con paso", ¿podría dar un consejo?
en el EA tengo
===================
entrada "Trailing" (por puntos)
=> ejemplo:
trailing: 4000 (4 puntos)
(método antiguo) si el precio se mueve 4 puntos mover stoploss 4 puntos
pero necesito modificar a
===================
input "Trailing (Distancia) en puntos"
input "Trailing (Paso) en puntos"
=> ejemplo:
distancia de arrastre: 4000 (4 puntos)
paso de arrastre : 1500 (1,5 puntos)
(nuevo método) si el precio se ha movido 4 puntos mover stoploss 1,5 puntos
//| Simple Trailing function |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
}
}
¿No es el repintor?
Mladen,
Estoy trabajando con MT5.
Tengo esta "función trailing simple" que necesito convertir en "trailing con paso", ¿podría dar un consejo?
en el EA tengo
===================
entrada "Trailing" (por puntos)
=> ejemplo:
trailing: 4000 (4 puntos)
(método antiguo) si el precio se mueve 4 puntos mover stoploss 4 puntos
pero necesito modificar a
===================
input "Trailing (Distancia) en puntos"
input "Trailing (Paso) en puntos"
=> ejemplo:
distancia de arrastre: 4000 (4 puntos)
paso de arrastre : 1500 (1,5 puntos)
(nuevo método) si el precio se ha movido 4 puntos mover stoploss 1,5 puntos
//| Simple Trailing function |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
if(Trailing<=0){
return;
}
if(!Pos.Select(_Symbol)){
return;
}
if(!Sym.RefreshRates()){
return;
}
double nsl,tmsl,psl;
switch(Pos.PositionType()){
case POSITION_TYPE_BUY:
nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
if(nsl<tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
case POSITION_TYPE_SELL:
nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
psl=Sym.NormalizePrice(Pos.StopLoss());
if(nsl<psl || psl==0){
tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
if(nsl>tmsl){
Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
}
}
}
break;
}
}
Si el precio se ha movido respecto a : ¿qué?
antes de llamar a la función tienes
si el precio está "creciendo", comprueba la "distancia" en puntos... si coincide con la "distancia" mueve el stoploss usando el paso (en puntos)
ejemplo:
stoploss =8000
distancia de arrastre = 4000
paso de arrastre = 2000
usted compra al precio 10000
ahora el precio es 14000 (distancia de arrastre objetivo alcanzado=4000) , ahora necesita mover el stoploss a 6000 (8000 - paso de arrastre)
ahora el precio es 18000 (objetivo de distancia de seguimiento alcanzado=4000 ), ahora necesita mover el stoploss a 2000 (6000 - paso de seguimiento)
ahora el precio es 22000 (objetivo de distancia de seguimiento alcanzado=4000), ahora necesita mover el stoploss a "entrada" + 2000 (2000 - paso de seguimiento =-2000)
ahora el precio es 24000 (objetivo de distancia alcanzado=4000), ahora necesita mover el stoploss a la "entrada" + 6000 (-2000 - paso de arrastre =-6000)
antes de llamar a la función tienes
si el precio está "creciendo", comprueba la "distancia" en puntos... si coincide con la "distancia" mueve el stoploss usando el paso (en puntos)
ejemplo:
stoploss =8000
trailing distance = 4000
trailing step = 2000
usted compra al precio 10000
ahora el precio es 14000 (objetivo de distancia de seguimiento alcanzado=4000), ahora necesita mover el stoploss a 6000 (8000 - paso de seguimiento)
ahora el precio es 18000 (objetivo de distancia de seguimiento alcanzado=4000 ), ahora necesita mover el stoploss a 2000 (6000 - paso de seguimiento)
ahora el precio es 22000 (objetivo de distancia de seguimiento alcanzado=4000), ahora necesita mover el stoploss a la "entrada" + 2000 (2000 - paso de seguimiento =-2000)
ahora el precio es 24000 (objetivo de distancia de seguimiento alcanzado=4000), ahora necesita mover el stoploss a la "entrada" + 6000 (-2000 - paso de seguimiento =-6000)
Hola,
Me gustaría escribir una función que dibuje una flecha. Me gustaría que la fl echa flotara. ¿Alguna idea? :)
void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ChartRedraw(0);
}
Sí, pero si no lo tienes registrado (como suele ocurrir con los precios de stop loss o take profit : cuando se modifican empiezan a ser un criterio para otro cambio) te ves obligado a tenerlo en variables y eso es cualquier cosa menos a prueba de errores. Lo que intentas no es repetible por el código o tienes que codificar esos stops para todos y cada uno de los casos, lo que lo hace inutilizable para cualquier precio de apertura que no sea exactamente el mismo que los precios codificados.
Hola mladen,
aquí tienes el ejemplo-ea
Hola,
Me gustaría escribir una función que dibuje una flecha. Me gustaría que la fl echa flotara. ¿Alguna idea? :)
void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ChartRedraw(0);
}
¿Qué significa la flecha "flotante"?
PD: los objetos fl echa no están usando las coordenadas x e y ni la esquina. Están usando el tiempo y el precio
hola señor mladen
por favor, hazle un MTF
respecto a