Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Asesores Expertos

Fundamental Trader DailyFX CSV MQL4 - Asesor Experto para MetaTrader 4

Visualizaciones:
2998
Ranking:
(20)
Publicado:
2016.05.17 10:20
Actualizado:
2016.11.22 07:33
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Descripción:

La idea consistía en desarrollar un Asesor Experto (EA) que tradeara automáticamente con todas las noticias, sin intervención manual por parte del trader. Es imposible probar este EA en los datos históricos (back testing), sólo pruebas a futuro (forward test), porque está programado a la espera de la publicación de las noticias. Toma las decisiones de trading a base de la diferencia entre la información (actual y pronosticada) o (actual y previa). El EA es muy simple, él determina cuál de los eventos del calendario DAILYFX es el siguiente, y luego toma las decisiones de trading. Se puede usar este EA en cualquier gráfico con cualquier período de tiempo, ya que utiliza los gráficos sólo para la ejecución de las órdenes soportando cualquier par de divisas. Los detalles se muestran a continuación.


NOTA:Para que el EA empiece a trabajar, tiene que atenerse escrupulosamente a las instrucciones de la instalación de archivos principales ubicados en la dirección https://www.mql5.com/ru/articles/1502. Este EA ha sido desarrollado a base del código del indicador ubicado en el mismo enlace. Primero, tiene que atenerse a las instrucciones ubicados en el enlace arriba mencionado e instalar los siguientes archivos: getright_setup.zip, Time.mq4, Time.mqh. Asegúrese de que haya cambiado el directorio predefinido “get right” a donde va a descargarse el calendario, de lo contrario el EA no va a trabajar. Asegúrese de que haya leído lentamente el artículo, siguiendo todas las instrucciones. Usted puede leer todo sobre estos archivos y sus funciones. Este artículo es muy útil en cuanto a la comprensión qué es lo que sucede para que los eventos de noticias se muestren en la ventana del gráfico, después de que el EA va a trabajar sin ningún problema. El código fuente del indicador ha sido transformado para que se convierta en el EA que va a tradear con las noticias, en vez de sólo mostrarlas. Después de instalar los archivos mencionados por el enlace especificado, Usted puede descargar este EA junto con "str2double.dll", entonces el EA empezará a tradear por las noticias publicadas en DAILYFX. Hay que colocar el archivo "str2double.dll" en el directorio raíz, es decir en C:\Program Files\Interbank FX Trader 4\


La lógica detrás del trading es la siguiente: hay dos tipos de eventos que ocurren durante el trading con las noticias. Primero, Usted dispone de la información económica actual que se compara con la información pronosticada. Segundo, Usted dispone de la información económica actual que se compara con la información previa. La diferencia entre los datos puede influir en la dirección del precio de la divisa, mientras que la diferencia porcentual entre la información económica da un alto grado de probabilidad de que la publicación de las noticias provoque la reacción del mercado en una determinada dirección. Para más información, puede visitar el sitio web www.pfxglobal.com. En este caso, cuando hay una diferencia porcentual grande entre los datos económicos, el EA va a ejecutar las órdenes con lotes más grandes. Estos tamaños de los lotes se indican cuando el EA se adjunta al gráfico, usando las siguientes variables: lot1,lot2,lot3,lot4,lot5,lot6......lot18. El EA va a elegir el tamaño definido del lote dependiendo de la diferencia porcentual entre los datos económicos.


El EA Fundamental Trader está configurado a la relación entre el riesgo y beneficio de 1:3. Cuando el EA se adjunta por primera vez al gráfico, los valores predefinidos serán los siguientes: risk=20, reward=3. Risk son los valores de StopLoss en pips, Reward es el multiplicador. Así, si el riesgo es igual a 20 pips, se espera obtener el beneficio de 60 pips. Estos valores pueden ser modificados al adjuntar el EA al gráfico.


Las noticias no se publican a la hora exacta de su lanzamiento planificado, por tanto es necesario fijar un intervalo de tiempo de espera de su publicación. La siguiente sección del código determina el tiempo que el EA va a esperar a que las noticias se publiquen. Después de que el tiempo de espera de las noticias se haya expirado, el EA pasará al siguiente evento de noticias. xTime es la variable que puede ser modificada al adjuntar el EA al gráfico por primera vez. Por defecto, este valor corresponde a 15 minutos.

if(Date>(TimeCurrent()-(xTime*60)))


El EA Fundamental Trader tradea con todas las divisas soportadas en dailyfx.com/calendar. La sección del código de abajo muestra con qué divisa se debe tradear, en función del país para el que se publican las noticias. Lista de divisas: EUR, USD, JPY, GBP, CHF, AUD, CAD, NZD.

         string ordercurrency="";
         if(stCurrency=="EUR" ){ordercurrency="EURUSD";} //trading con eurusd
         if(stCurrency=="USD" ){ordercurrency="EURUSD";} //trading con eurusd
         if(stCurrency=="JPY" ){ordercurrency="USDJPY";} //trading con usdjpy
         if(stCurrency=="GBP" ){ordercurrency="GBPUSD";} //trading con usdgbp
         if(stCurrency=="CHF" ){ordercurrency="USDCHF";} //trading con usdchf
         if(stCurrency=="AUD" ){ordercurrency="AUDUSD";} //trading con audusd
         if(stCurrency=="CAD" ){ordercurrency="USDCAD";} //trading con usdcad
         if(stCurrency=="NZD" ){ordercurrency="NZDUSD";} //trading con nzdusd

Luego se explica cómo el EA toma las decisiones de trading: cuando el EA espera los datos económicos actuales, cuando el EA tiene acceso a la información sobre los índices económicos pronosticados. Cuando la información pronosticada no está disponible, el EA utiliza los datos anteriores para realizar la operación. La siguiente sección del código muestra cómo se ejecuta la operación a base de la información actual y pronosticada. El mismo algoritmo se utiliza cuando el EA toma las decisiones a base de los datos previos y actuales.

if(StringToDouble(stActual)>StringToDouble(stForecast))
 {
      Alert("Stronger(actual vs forecast): "+stCurrency+" "+"Time: "+stTime);

int total=OrdersTotal();
    for(int cnt=0;cnt<total;cnt++)
    {
     OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //check opened orders
if(OrderComment()==stCurrency+stActual+stForecast+"BUY"||                     
OrderComment()==stCurrency+stActual+stForecast+"SELL")
{
FileClose(file);Comment("\n"+"Live Trade Open"+OrderTicket());return(0);
}
                           }

int historytotal=OrdersHistoryTotal();
for(cnt=0;cnt<historytotal;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //check opened orders
if(OrderComment()==stCurrency+stActual+stForecast+"BUY"||
OrderComment()==stCurrency+stActual+stForecast+"SELL"){
FileClose(file);Comment("\n"+"Trade Executed"+OrderTicket());return(0);
}
                           }
if(stCurrency=="EUR"||stCurrency=="GBP"||stCurrency=="AUD")
{
double ask=MarketInfo(ordercurrency,MODE_ASK);
double point1=MarketInfo(ordercurrency,MODE_POINT); 
OrderSend(ordercurrency,OP_BUY,lot_p,ask,3,ask-(risk*point1),
ask+reward*risk*point1),stCurrency+stActual+stForecast+"BUY");}

if(stCurrency=="CHF"||stCurrency=="CAD"||stCurrency=="NZD"||stCurrency=="JPY"||stCurrency=="USD")
{
double bid=MarketInfo(ordercurrency,MODE_BID); 
double point2=MarketInfo(ordercurrency,MODE_POINT);
OrderSend(ordercurrency,OP_SELL,lot_p,bid,3,bid+risk*point2),
bid-(reward*risk*point2),stCurrency+stActual+stForecast+"SELL");}


Primero, hay que mencionar que el EA puede colocar sólo una orden para una noticia, por eso primero comprueba si hay una orden ya abierta, y si es así, sale. Segundo, el EA comprueba si la orden ha sido abierta y luego cerrada, y si ha sido así (con ganancia o pérdida), el EA sale. Estas dos comprobaciones permiten tener la seguridad de que no haya duplicado de las órdenes, lo que permite al EA abrir sólo una operación para cada noticia. Luego determina para qué país han sido publicados los datos y abre una posición mediante la función ordersend, cuando los datos económicos se publican. El código de arriba sirve para: cuando los datos actuales superan los datos pronosticados, se utiliza el mismos código que se usa cuando los datos actuales son inferiores a los pronosticados; la única diferencia es la dirección del trading. El mismo algoritmo se aplica cuando los datos anteriores se comparan con los actuales, en caso si no hay datos pronosticados.


El EA compara los (datos actuales o pronosticados) o (datos actuales o anteriores), la diferencia porcentual entre los datos en las noticias influye en la cantidad de lotes en las operaciones que se abren por el EA. La siguiente sección del código muestra cómo el EA determina la diferencia porcentual y especifica el tamaño del lote. El tamaño del lote es un número externo que puede ser modificado para que cualquier bróker pueda soportarlo. Usted establece el tamaño de lotes cuando adjunta el EA al gráfico por primera vez. Valores por defecto: 0.01, 0.02, 0.03...0.17.

double percent_d_AF=MathAbs((MathAbs(StringToDouble(stActual)-StringToDouble(stForecast))
/StringToDouble(stForecast))*100);//diferencia porcentual
entre los datos actuales y pronosticados
                        double lot_p=0;
                        if((percent_d_AF>0 && percent_d_AF<=3)){lot_p=lot1;}//0.1 lote
                        if((percent_d_AF>3 && percent_d_AF<=6)){lot_p=lot2;}//0.2 lote
                        if((percent_d_AF>6 && percent_d_AF<=9)){lot_p=lot3;}//0.3 lote
                        if((percent_d_AF>9 && percent_d_AF<=12)){lot_p=lot4;}//0.4 lote
                        if((percent_d_AF>12 && percent_d_AF<=15)){lot_p=lot5;}//0.5 lote
                        if((percent_d_AF>15 && percent_d_AF<=18)){lot_p=lot6;}//0.6 lote
                        if((percent_d_AF>18 && percent_d_AF<=21)){lot_p=lot7;}//0.7 lote
                        if((percent_d_AF>21 && percent_d_AF<=24)){lot_p=lot8;}//0.8 lote
                        if((percent_d_AF>24 && percent_d_AF<=27)){lot_p=lot9;}//0.9 lote
                        if((percent_d_AF>27 && percent_d_AF<=30)){lot_p=lot10;}//1 lote
                        if((percent_d_AF>30 && percent_d_AF<=40)){lot_p=lot11;}//2 lotes
                        if((percent_d_AF>40 && percent_d_AF<=50)){lot_p=lot12;}//3 lotes
                        if((percent_d_AF>50 && percent_d_AF<=60)){lot_p=lot13;}//4 lotes
                        if((percent_d_AF>60 && percent_d_AF<=70)){lot_p=lot14;}//5 lotes
                        if((percent_d_AF>70 && percent_d_AF<=80)){lot_p=lot15;}//6 lotes
                        if((percent_d_AF>80 && percent_d_AF<=90)){lot_p=lot16;}//7 lotes
                        if((percent_d_AF>90 && percent_d_AF<=100)){lot_p=lot17;}//8 lotes
                        if((percent_d_AF>100))                    {lot_p=lot18;}//8 lotes




Screen Shot of Fundamental News Data

Cuando Usted adjunta el EA al gráfico por primera vez e indica los valores "xTime", "risk", "reward" y el tamaño mínimo y máximo del lote, asegúrese de que haya abandonado el directorio en el que se instala “get right” por defecto. El EA descargará el calendario dialyfx y determinará cuál de los eventos de noticias será el siguiente. Mostrará la siguiente información: Fecha, Hora, Huso horario, Importancia, Actuales, Pronosticados y Anteriores, tal como se muestra en la imagen de arriba. En la imagen anterior, el EA se encuentra a la espera de la noticia que saldrá a las 2:00, y como se puede ver, se saben los datos anteriores (73,5%), y el EA espera la publicación de datos actuales. En cuanto los datos económicos se publiquen, el EA los comparará y tomará la decisión de trading basándose en la diferencia de datos anteriores y actuales. Por ahora lo está observando. Finalmente, el EA descarga la información del calendario minuto por minuto hasta que no se publique la información económica.


Vista general: Este EA tradea con cada evento económico publicado en dailyfx.com/calendar en el formato CSV. El calendario se descarga con el programa "get right". El EA descarga el calendario cada minuto. El EA analiza el calendario y determina qué noticia será la siguiente, luego espera la publicación de la noticia cada 15 minutos. En cuanto la noticia se publique, determina qué es lo que debe comparar: la información (actual y pronosticada) o (actual y anterior). El EA determina el tamaño del lote, divisa de la operación, así como la dirección de la operación a base del evento del calendario económico. Se puede encontrar esta información en el gráfico con el EA iniciado. La orden se ejecuta con la relación 1:3 entre el riesgo y el beneficio. El EA está configurado para ejecutar sólo una orden para cada noticia.


No olvide seguir todas las instrucciones por el enlace https://www.mql5.com/ru/articles/1502, para descargar el calendario correctamente y para que la hora de su bróker esté ajustada correctamente para el procesamiento de las noticias. Información desde dailyfx.com/calendar - GMT.


¡Suerte con el trading manual o automático!


Si tiene alguna pregunta, sugerencia o crítica, deje sus comentarios.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/8491

Bull vs Medved Bull vs Medved

El Asesor Experto toma decisiones de trading basándose en las combinaciones simples de las velas. Trabaja con las órdenes pendientes.

T3 Taotra T3 Taotra

Indicador T3 Taotra.

VKW Bands modify VKW Bands modify

Indicador de picos. Muestra dónde hay que colocar las órdenes pendientes.

Indicador del período H1 en M1 Indicador del período H1 en M1

Indicador del período H1 en M1.