![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
¡realmente gracias mladen!
Lo he visto ahora.
Yo hice lo mismo. Échale un vistazo:
for_a_new_life-1.ex4
for_a_new_life-1_1.mq4
Estaba probando la versión de la mina y probaré la tuya también.
Si este indicador es correcto, que hizo algunos grandes para atrapar puntos de inversión.
es porque la diferencia entre las dos medias móviles dividida por la fuerza de 2 veces, puede mostrar cuando el precio está revirtiendo en una tendencia con más sensibilidad. Pruébalo con otro indicador de frontera y creo que te gustará.![](https://c.mql5.com/forextsd/smiles/smile.png)
algunas fotos:
Estoy muy contento porque esta es mi primera contribución al foro. Y no podría hacerlo sin su ayuda.
¡Muchas gracias Mladen!Kelch
Solo le he hecho un cambio: cambiar la dirección del mismo. Parece que de esta manera se muestran valores un poco más lógicos. Pruébalo también de esta manera
for_a_new_life-1.01.mq4
Hola Mladen,
Hice EA de icustom después de compilarlo ningún error dan advertencia pero yo era Backtest no OP en absoluto?
¿Puedo publicar mi EA en este hilo me wolud como a su ayuda para solucionarlo.
Gracias,
mejor consideración
Hola Mladen,
Hice EA de icustom después de compilarlo ningún error dan advertencia pero yo era Backtest no OP en absoluto?
¿Puedo publicar mi EA en este hilo me wolud como a su ayuda para solucionarlo.
Gracias,
un saludoDova
Postealo para que alguien le eche un vistazo
Kelch
Hice sólo un cambio en él: cambiar la dirección del mismo. Parece que de esta manera muestra valores un poco más lógicos. Pruébalo también de esta manera
for_a_new_life-1.01.mq4¡Gracias mladen!
Aquí mi ea de prueba...
Este ea mientras compilar está bien ningún error o advertencia, pero no OP cuando BT.
Me gustaria que este ea pueda revertir de OP antes,
ejemplo si la posicion ya es de COMPRA que la flecha de VENTA de la proxima vela aparezca la posicion auto reversa de COMPRA a VENTA y visa versa.
Añadir Trailling Stop también.
Lo siento por mi mal inglés
pfi.ex4ea_pfi.mq4
Gracias
Aquí mi ea de prueba...
Este ea mientras compila está bien ningún error o advertencia, pero no OP cuando BT.
Me gustaria que este ea pueda revertir de OP antes,
ejemplo si la posicion ya es de COMPRA que la flecha de VENTA de la proxima vela aparezca automaticamente la posicion inversa de COMPRA a VENTA y visa versa.
Añadir Trailling Stop también.
Lo siento por mi mal inglés
pfi.ex4ea_pfi.mq4
GraciasPara la claridad de cualquiera que lea este post: ¿qué significa exactamente el "invertir de OP" o "no OP cuando BT"?
Para la claridad de cualquier persona que lea este post : ¿qué significa exactamente el "invertir de OP" o "no OP cuando BT"?
Me refiero a OP= Posición abierta, BT= Backtest.
Después de backtest no hay posiciones abiertas.
Cuando ya hay una posición abierta de compra, entonces la siguiente vela de venta flechas / señal aparecen automáticamente cerrar posiciones largas y abrir posiciones cortas y viceversa (auto posición inversa).
Espero que mi explanatian hacer que sea claro..
Gracias
Saludos a todos ....
perdonen si se equivocan de lugar, por mis nuevos miembros .
Por favor, su apoyo de la codificación maestro ,
para ser la codificación de este indicador en EA .
con la intención de EA será capaz de trabajar como yo quería, a saber :
1.Open compra automática cuando el precio toca la línea TL1 .
2.Abrir automáticamente vender cuando el precio toca la línea TL2
3.Abrir automáticamente comprar cuando el precio está por encima de la línea TL2
4.Abrir vender automáticamente cuando el precio está por encima de la línea TL1
5.cerrado automáticamente comprar cuando el precio toca la línea TL2 proceder directamente abrir vender
6.Cerrado automáticamente vender cuando el precio toca la línea TL1 proceder directamente a abrir comprar
7.nomor 3 y 4 cerrado manualmente ( sin TrailingStop ) .
8.SL 50 pips y poner en el lote 0.1
9.Time frame H4 para todos los pares .
muchas gracias
/ / + ----------------------------------------------- ------------------- +
/ / | SHI_Channel_true.mq4 |
/ / | Copyright © 2004 , Shurka & Kevin |
/ / | |
/ / + ----------------------------------------------- ------------------- +
# propiedad copyright " Copyright © 2004 , Shurka & Kevin "
# property link " "
/ / ----
# propiedad indicator_chart_window
# propiedad indicator_buffers 1
# propiedad indicador_color1 Rojo
ExtMapBuffer1 double [ ] ;
/ / ---- Parámetros de entrada
extern int AllBars = 240 ;
BarsForFract extern int = 0 ;
CurrentBar int = 0 ;
double Paso = 0 ;
int B1 = -1 , B2 = -1 ;
UpDown int = 0 ;
double P1 = 0 , P2 = 0 , PP = 0 ;
int i = 0 , AB = 300 , BFF = 0 ;
ishift int = 0 ;
double iprice = 0 ;
datetime T1 , T2 ;
/ / + ----------------------------------------------- ------------------- +
/ / | Función de inicialización de los indicadores personalizados |
/ / + ----------------------------------------------- ------------------- +
int init ( )
/ / ---- Indicadores
SetIndexStyle ( 0 , DRAW_ARROW ) ;
SetIndexArrow ( 0 , 164 ) ;
SetIndexBuffer ( 0 , ExtMapBuffer1 ) ;
SetIndexEmptyValue ( 0 , 0.0 ) ;
/ / ----
return ( 0 ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | Desinicialización de la función del indicador Custor |
/ / + ----------------------------------------------- ------------------- +
deinit int ( )
{
ObjectDelete ( " TL1 " ) ;
ObjectDelete ( " TL2 " ) ;
ObjectDelete ( " MIDL " ) ;
Comentario ( " " ) ;
/ / ----
return ( 0 ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | |
/ / + ----------------------------------------------- ------------------- +
DelObj void ( )
{
ObjectDelete ( " TL1 " ) ;
ObjectDelete ( " TL2 " ) ;
ObjectDelete ( " MIDL " ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | Función de iteración de indicadores personalizada |
/ / + ----------------------------------------------- ------------------- +
int inicio ( )
{
IndicatorCounted counted_bars = int ( ) ;
/ / ----
if ( AllBars == 0 ) | ( Bars < AllBars ) )
AB = Bars ;
else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ
if ( BarsForFract > 0 )
BFF = BarsForFract ;
si no
switch ( Periodo ( ) )
{
caso 1 : BFF = 12 ; break;
caso 5 : BFF = 48 ; break;
caso 15 : BFF = 24 ; break;
caso 30 : BFF = 24 ; break;
caso 60 : BFF = 12 ; break;
caso 240 : BFF = 15 ; break;
caso 1440: BFF = 10 ; break;
case 10080 : BFF = 6 ; break;
default : DelObj ( ), return ( -1 ) ; break;
}
CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèëñÿ
B1 = -1 ;
B2 = -1 ;
UpDown = 0 ;
while ( ( ( B1 == -1 ) | ( B2 == -1 ) ) && ( CurrentBar < AB ) )
{
/ / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë
/ / íàéäåí ñíèçó , CIA UpDown = 0 ÷ ¸ AU EO ôðàêòàë he íàéäåí .
/ / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëàìè , ÷ ADAC IEO ñòðîèì îïîðíóþ ëèíèþ .
/ È D1 D2 - ÷ öåíû ñîòâåòñòâåííî ADAC êîòîðûå áóäåì ëèíèþ ïðîâîäèòü
if ( UpDown < 1 ) && ( CurrentBar == Lowest ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 ,
CurrentBar - BFF ) ) )
{
si ( UpDown == 0 )
{
UpDown = -1 ;
B1 = CurrentBar ;
P1 = Low [ B1 ] ;
}
si no
{
B2 = Barra Actual ;
P2 = Low [ B2 ] ;
}
}
if ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 ,
CurrentBar - BFF ) )
{
si ( UpDown == 0 )
{
UpDown = 1 ;
B1 = CurrentBar ;
P1 = Alta [ B1 ] ;
}
si no
{
B2 = Barra Actual ;
P2 = Alto [ B2 ] ;
}
}
CurrentBar + + ;
}
if ( B1 == -1 ) | ( B2 == -1 ) )
{
DelObj ( ) ;
return ( -1 ) ;
} / / Eo ÷ CIA he íàøëè ôðàêòàëîâ ñðåäè 300 áàðîâ 8-)
Paso = ( P2 - P1 ) / ( B2 - B1 ) / / Au ÷ èñëèëè OAA , åñëè ïîëîæèòåëüíûé II , OI êàíàë íèñõîäÿùèé
P1 = P1 - B1 * Paso ;
B1 = 0 ; / / ïåðåñòàâëÿåì öåíó ïåðâûé AAD è ê íóëþ
/ / À ÷ eo Oi òåïåðü îïîðíóþ ïðîòèâîïîëîæíîé ëèíèè êàíàëà .
ishift = 0 ;
iprice = 0 ;
if ( UpDown == 1 )
{
PP = Bajo [ 2 ] - 2 * Paso ;
for (i = 3 ; i < = B2 ; i + + )
{
if ( Low [ i ] < PP + Step * i )
PP = Low [ i ] - i * Step ;
}
if ( Low [ 0 ] < PP )
{
ishift = 0 ;
iprice = PP ;
}
if ( Low [ 1 ] < PP + Step )
{
ishift = 1 ;
iprice = PP + Paso ;
}
si ( Alta [ 0 ] > P1 )
{
ishift = 0 ;
iprice = P1 ;
}
si ( Alto [ 1 ] > P1 + Paso )
{
ishift = 1 ;
iprice = P1 + Paso ;
}
}
si no
{
PP = Alto [ 2 ] - 2 * Paso ;
for (i = 3 ; i < = B2 ; i + + )
{
si ( Alta [ i ] > PP + Paso * i )
PP = Alto [ i ] - i * Paso ;
}
if ( Low [ 0 ] < P1 )
{
ishift = 0 ;
iprice = P1 ;
}
if ( Low [ 1 ] < P1 + Step )
{
ishift = 1 ;
iprice = P1 + Paso ;
}
si ( Alta [ 0 ] > PP )
{
ishift = 0 ;
iprice = PP ;
}
if ( High [ 1 ] > PP + Step )
{
ishift = 1 ;
iprice = PP + Paso ;
}
}
/ / Òåïåðü ïåðåñòàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëèíèè êàíàëà ðèñîâàëèñü ïîäëèíåå
P2 = P1 + AB * Paso ;
T1 = Tiempo [ B1 ] ;
T2 = Tiempo [ AB ] ;
/ / Åñëè he áûëî ïåðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å ñòàâèì Ineno .
if ( iprice ! = 0 )
ExtMapBuffer1 [ ishift ] = iprice ;
DelObj ( ) ;
ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) ;
ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) ;
ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) ;
ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) ;
ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) ;
ObjectSet ( " TL2 " , OBJPROP_COLOR , Blanco ) ;
ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) ;
ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) ;
ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) ;
ObjectSet ( " MIDL " , OBJPROP_COLOR , Yellow ) ;
ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) ;
ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) ;
Comment ( " Tamaño del canal = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ) , " Pendiente = " ,
DoubleToStr ( - Paso / Punto , 2 ) ;
/ / ----
return ( 0 ) ;
}
/ / + ----------------------------------------------- ------------------- +
Saludos a todos ....
Perdonen si se equivocan de lugar, debido a mis nuevos miembros.
Por favor, su apoyo de la codificación maestro,
para codificar este indicador en EA .
con la intención de EA será capaz de trabajar como yo quería, a saber :
1.Open compra automática cuando el precio toca la línea TL1 .
2.Abrir automáticamente vender cuando el precio toca la línea TL2
3.Abrir automáticamente comprar cuando el precio está por encima de la línea TL2
4.Abrir vender automáticamente cuando el precio está por encima de la línea TL1
5.cerrado automáticamente comprar cuando el precio toca la línea TL2 proceder directamente abrir vender
6.Cerrado automáticamente vender cuando el precio toca la línea TL1 proceder directamente a abrir comprar
7.nomor 3 y 4 cerrado manualmente ( sin TrailingStop ) .
8.SL 50 pips y poner en el lote 0.1
9.Time frame H4 para todos los pares .
muchas gracias
/ / + ----------------------------------------------- ------------------- +
/ / | SHI_Channel_true.mq4 |
/ / | Copyright © 2004 , Shurka & Kevin |
/ / | |
/ / + ----------------------------------------------- ------------------- +
# propiedad copyright " Copyright © 2004 , Shurka & Kevin "
# property link " "
/ / ----
# propiedad indicator_chart_window
# propiedad indicator_buffers 1
# propiedad indicador_color1 Rojo
ExtMapBuffer1 double [ ] ;
/ / ---- Parámetros de entrada
extern int AllBars = 240 ;
BarsForFract extern int = 0 ;
CurrentBar int = 0 ;
double Paso = 0 ;
int B1 = -1 , B2 = -1 ;
UpDown int = 0 ;
double P1 = 0 , P2 = 0 , PP = 0 ;
int i = 0 , AB = 300 , BFF = 0 ;
ishift int = 0 ;
double iprice = 0 ;
datetime T1 , T2 ;
/ / + ----------------------------------------------- ------------------- +
/ / | Función de inicialización de los indicadores personalizados |
/ / + ----------------------------------------------- ------------------- +
int init ( )
/ / ---- Indicadores
SetIndexStyle ( 0 , DRAW_ARROW ) ;
SetIndexArrow ( 0 , 164 ) ;
SetIndexBuffer ( 0 , ExtMapBuffer1 ) ;
SetIndexEmptyValue ( 0 , 0.0 ) ;
/ / ----
return ( 0 ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | Desinicialización de la función del indicador Custor |
/ / + ----------------------------------------------- ------------------- +
deinit int ( )
{
ObjectDelete ( " TL1 " ) ;
ObjectDelete ( " TL2 " ) ;
ObjectDelete ( " MIDL " ) ;
Comentario ( " " ) ;
/ / ----
return ( 0 ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | |
/ / + ----------------------------------------------- ------------------- +
DelObj void ( )
{
ObjectDelete ( " TL1 " ) ;
ObjectDelete ( " TL2 " ) ;
ObjectDelete ( " MIDL " ) ;
}
/ / + ----------------------------------------------- ------------------- +
/ / | Función de iteración de indicadores personalizada |
/ / + ----------------------------------------------- ------------------- +
int inicio ( )
{
IndicatorCounted counted_bars = int ( ) ;
/ / ----
if ( AllBars == 0 ) | ( Bars < AllBars ) )
AB = Bars ;
else AB = AllBars ; / / AB - êîëè ÷ ÷ åñòâî Ian èòûâàåìûõ áàðîâ
if ( BarsForFract > 0 )
BFF = BarsForFract ;
si no
switch ( Periodo ( ) )
{
caso 1 : BFF = 12 ; break;
caso 5 : BFF = 48 ; break;
caso 15 : BFF = 24 ; break;
caso 30 : BFF = 24 ; break;
caso 60 : BFF = 12 ; break;
caso 240 : BFF = 15 ; break;
caso 1440: BFF = 10 ; break;
case 10080 : BFF = 6 ; break;
default : DelObj ( ), return ( -1 ) ; break;
}
CurrentBar = 2 ; / / ñ ÷ ñ òðåòüåãî Suspected èòàåì , ÷ òîáû ôðàêòàë " çàêðåïèëñÿ
B1 = -1 ;
B2 = -1 ;
UpDown = 0 ;
while ( ( ( B1 == -1 ) | ( B2 == -1 ) ) && ( CurrentBar < AB ) )
{
/ / UpDown = 1 ÷ eo CIA ïåðâûé ôðàêòàë íàéäåí ñâåðõó , UpDown = -1 ÷ eo CIA ïåðâûé ôðàêòàë
/ / íàéäåí ñíèçó , CIA UpDown = 0 ÷ ¸ AU EO ôðàêòàë he íàéäåí .
/ / A1 a2 è - ÿ áàðîâ íîìåðà ôðàêòàëàìè , ÷ ADAC IEO ñòðîèì îïîðíóþ ëèíèþ .
/ È D1 D2 - ÷ öåíû ñîòâåòñòâåííî ADAC êîòîðûå áóäåì ëèíèþ ïðîâîäèòü
if ( UpDown < 1 ) && ( CurrentBar == Lowest ( Symbol ( ) , Period ( ) , MODE_LOW , BFF * 2 + 1 ,
CurrentBar - BFF ) ) )
{
si ( UpDown == 0 )
{
UpDown = -1 ;
B1 = CurrentBar ;
P1 = Low [ B1 ] ;
}
si no
{
B2 = Barra Actual ;
P2 = Low [ B2 ] ;
}
}
if ( UpDown > -1 ) && ( CurrentBar == Highest ( Symbol ( ) , Period ( ) , MODE_HIGH , BFF * 2 + 1 ,
CurrentBar - BFF ) )
{
si ( UpDown == 0 )
{
UpDown = 1 ;
B1 = CurrentBar ;
P1 = Alta [ B1 ] ;
}
si no
{
B2 = Barra Actual ;
P2 = Alto [ B2 ] ;
}
}
CurrentBar + + ;
}
if ( B1 == -1 ) | ( B2 == -1 ) )
{
DelObj ( ) ;
return ( -1 ) ;
} / / Eo ÷ CIA he íàøëè ôðàêòàëîâ ñðåäè 300 áàðîâ 8-)
Paso = ( P2 - P1 ) / ( B2 - B1 ) / / Au ÷ èñëèëè OAA , åñëè ïîëîæèòåëüíûé II , OI êàíàë íèñõîäÿùèé
P1 = P1 - B1 * Paso ;
B1 = 0 ; / / ïåðåñòàâëÿåì öåíó ïåðâûé AAD è ê íóëþ
/ / À ÷ eo Oi òåïåðü îïîðíóþ ïðîòèâîïîëîæíîé ëèíèè êàíàëà .
ishift = 0 ;
iprice = 0 ;
if ( UpDown == 1 )
{
PP = Bajo [ 2 ] - 2 * Paso ;
for (i = 3 ; i < = B2 ; i + + )
{
if ( Low [ i ] < PP + Step * i )
PP = Low [ i ] - i * Step ;
}
if ( Low [ 0 ] < PP )
{
ishift = 0 ;
iprice = PP ;
}
if ( Low [ 1 ] < PP + Step )
{
ishift = 1 ;
iprice = PP + Paso ;
}
si ( Alta [ 0 ] > P1 )
{
ishift = 0 ;
iprice = P1 ;
}
si ( Alto [ 1 ] > P1 + Paso )
{
ishift = 1 ;
iprice = P1 + Paso ;
}
}
si no
{
PP = Alto [ 2 ] - 2 * Paso ;
for (i = 3 ; i < = B2 ; i + + )
{
si ( Alta [ i ] > PP + Paso * i )
PP = Alto [ i ] - i * Paso ;
}
if ( Low [ 0 ] < P1 )
{
ishift = 0 ;
iprice = P1 ;
}
if ( Low [ 1 ] < P1 + Step )
{
ishift = 1 ;
iprice = P1 + Paso ;
}
si ( Alta [ 0 ] > PP )
{
ishift = 0 ;
iprice = PP ;
}
if ( High [ 1 ] > PP + Step )
{
ishift = 1 ;
iprice = PP + Paso ;
}
}
/ / Òåïåðü ïåðåñòàâèì êîíå ÷ è íóþ öåíó he AAD AA , ÷ òîáû ëèíèè êàíàëà ðèñîâàëèñü ïîäëèíåå
P2 = P1 + AB * Paso ;
T1 = Tiempo [ B1 ] ;
T2 = Tiempo [ AB ] ;
/ / Åñëè he áûëî ïåðåñå ÷ åíèÿ êàíàëà , oi 0 , EIA ÷ å ñòàâèì Ineno .
if ( iprice ! = 0 )
ExtMapBuffer1 [ ishift ] = iprice ;
DelObj ( ) ;
ObjectCreate ( " TL1 " , OBJ_TREND , 0 , T2 , PP + Step * AB , T1 , PP ) ;
ObjectSet ( " TL1 " , OBJPROP_COLOR , Lime ) ;
ObjectSet ( " TL1 " , OBJPROP_WIDTH , 2 ) ;
ObjectSet ( " TL1 " , OBJPROP_STYLE , STYLE_SOLID ) ;
ObjectCreate ( " TL2 " , OBJ_TREND , 0 , T2 , P2 , T1 , P1 ) ;
ObjectSet ( " TL2 " , OBJPROP_COLOR , Blanco ) ;
ObjectSet ( " TL2 " , OBJPROP_WIDTH , 2 ) ;
ObjectSet ( " TL2 " , OBJPROP_STYLE , STYLE_SOLID ) ;
ObjectCreate ( " MIDL " , OBJ_TREND , 0 , T2 , ( P2 + PP + Step * AB ) / 2 , T1 , ( P1 + PP ) / 2 ) ;
ObjectSet ( " MIDL " , OBJPROP_COLOR , Yellow ) ;
ObjectSet ( " MIDL " , OBJPROP_WIDTH , 1 ) ;
ObjectSet ( " MIDL " , OBJPROP_STYLE , STYLE_DOT ) ;
Comment ( " Tamaño del canal = " , DoubleToStr ( MathAbs ( PP - P1 ) / Point , 0 ) , " Pendiente = " ,
DoubleToStr ( - Paso / Punto , 2 ) ;
/ / ----
return ( 0 ) ;
}
/ / + ----------------------------------------------- ------------------- +djiwenk
Sabes que el canal shi cambia todo el tiempo (según cambie el precio actual el canal shi cambiará también)?
libro de creación de ea
crear su propio ea