Saturday, November 12, 2016

Estrategias De Negociación Ninjatrader

Página no encontrada La página que intentó acceder no existe en este servidor. Esta página no existe debido a las siguientes razones: Usted es el propietario de este sitio web y usted no ha subido (o incorrectamente cargado) de su sitio web. Para obtener información sobre la posibilidad de subir tu sitio web utilizando el software de cliente de FTP o software de diseño web, haga clic aquí para FTP Upload información. La URL que ha introducido en su navegador es incorrecta. Por favor, vuelva a introducir la URL y vuelva a intentarlo. El enlace que ha hecho clic en incorrectamente apunta a esta página. Por favor, póngase en contacto con el propietario de este sitio web para informarles de la situación. NinjaTrader Partners &copia; 2015. Todos los derechos reservados. El logotipo NinjaTrader Ecosistema es una marca comercial de NinjaTrader Ecosistema LLC. Este sitio web es para fines educativos e informativos solamente y no debe ser considerada como una solicitud para comprar o vender un contrato de futuros o hacer cualquier otro tipo de decisión de inversión. Las empresas y servicios mencionados en este sitio web no deben ser consideradas una recomendación y es responsabilidad del lector para evaluar cualquier producto, servicio o empresa. NinjaTrader Ecosistema LLC no es responsable de la exactitud o contenido de cualquier producto, servicio o empresa vinculada a este sitio web. El comercio de futuros contiene riesgo considerable y no es para todos los inversores. Un inversor podría llegar a perder todo o más de la inversión inicial. El capital de riesgo es dinero que se puede perder sin poner en peligro la seguridad o la vida de los estilo financiero. Capital de riesgo sólo se debe utilizar para el comercio y sólo aquellos con suficiente capital riesgo debe tener en cuenta el comercio. El rendimiento pasado no es necesariamente indicativa de resultados futuros. Ver divulgación de riesgos completo. Reglas CFTC 4.41 - Los resultados hipotéticos o simulados tienen ciertas limitaciones, a diferencia de un registro de rendimiento real, resultados simulados no representan operaciones reales. Además, dado que no se han ejecutado los oficios, los resultados pueden tener bajo-o-sobre compensación por el impacto, si lo hay, de ciertos factores de mercado, como la falta de liquidez. Programas comerciales simuladas en general también están sujetos al hecho de que están diseñados con el beneficio de la retrospectiva. Ninguna representación está haciendo que cualquier cuenta o pueda lograr beneficios o pérdidas similares a los mostrados. Adaptrade Software Boletín artículo NinjaScript de Estrategia comerciantes por Michael R. Bryant He estado dispuestos a proporcionar NinjaTrader de & registro; NinjaScript & registro; salida para el software de la estrategia de generación Adaptrade constructor desde hace algún tiempo y ahora puede anunciar que está casi lista (ver más abajo para ver un ejemplo de una estrategia NinjaScript generada por Builder), con un lanzamiento previsto en o alrededor del 30 de junio Este artículo proporciona una alta visión general de nivel de la lengua NinjaScript y cómo se compara con los otros idiomas soportados por Constructor. * Aprovechando un lenguaje existente Ninja Trader es una plataforma de comercio popular para acciones, futuros y divisas. Como MetaTrader, NinjaTrader es libre para negociar simulado y el desarrollo de estrategias y es compatible con una amplia variedad de agentes y proveedores de datos. Una de las razones detrás de la popularidad de NinjaTrader es el lenguaje de programación NinjaScript para el desarrollo de indicadores y estrategia. La versatilidad y el poder de NinjaScript ha creado un gran ecosistema de indicador y código de estrategia que se extiende de manera efectiva la plataforma NinjaTrader. NinjaScript se basa en el C # (pronunciado C aguda) lenguaje de programación desarrollado por Microsoft y lanzado por primera vez en 2002. C # es un lenguaje de programación de propósito general basado en la popular C y C ++ idiomas y utilizar el marco de Microsoft. Basando NinjaScript en C # significa que puede disfrutar de toda la funcionalidad de C # y, y que puede ser compilado con compiladores existentes Microsoft C #. Esto es diferente a otros lenguajes de scripting, como EasyLanguage de TradeStation, AFL de AmiBroker y MQL4 de MetaTrader 4. Si bien estos idiomas tienen sintaxis similar a C, en particular MQL4, que están todos construidos desde cero. En principio, esto debería proporcionar una ventaja de diseño; es decir, que pueden ser diseñados a medida para el comercio. Sin embargo, esto tiene que equilibrarse con las ventajas que ofrece la fundación de una lengua madura, muy desarrollado como C #. El C # y bibliotecas proporcionan funciones tan básicas como fecha / hora y funciones matemáticas. Desde C # y ha estado en desarrollo durante aproximadamente 14 años, estas características básicas son bastante maduro y estable. NinjaScript no sólo se aprovecha de las funciones de la biblioteca incorporados pero el lenguaje básico presenta, así, como los condicionales (si luego de ramificación), bucles, funciones, y así sucesivamente. Al construir sobre el fundamento de una, lenguaje popular existente, NinjaTrader aprovechar una amplia gama de capacidades y características, evitando los riesgos y peligros de desarrollar un lenguaje de programación a partir de cero. El resultado es un lenguaje de script muy capaz y confiable rica en características. Un moderno lenguaje de scripts NinjaScript es consistente con el diseño subyacente de C #, que es orientado a objetos, impulsado por evento, y basado en componentes. Todas las estrategias de NinjaTrader definen su propia clase, que se deriva de la clase de estrategia en el espacio de nombres NinjaTrader. Aquí es donde se encuentra la mayor funcionalidad a C # para crear NinjaScript. Figura 1. La declaración de la clase estrategia está en el espacio de nombres NinjaTrader. Strategy. La función de inicialización se llama una vez al comienzo de la estrategia. En C #, la mayor acción se precipita por eventos externos, que desencadenan los controladores de eventos. En NinjaScript, el controlador de eventos principal se llama OnBarUpdate, que se activa al cierre de cada barra o, opcionalmente, en cada garrapata. Aquí es donde reside la lógica de la estrategia principal. El otro controlador de eventos principal es Initialize, que se activa en el inicio de la estrategia y se ejecuta sólo una vez en ese momento. Otros controladores de eventos se pueden implementar opcionalmente, como OnPositionUpdate, que se activa cada vez que la posición comercial cambia, y OnOrderUpdate, que se activa cada vez que un cambio de orden existentes. La capacidad de ejecutar código estrategia cuando eventos particulares tiene lugar puede hacer que sea más fácil de programar ciertas acciones en NinjaScript comparación con lenguajes más tradicionales, como EasyLanguage. Figura 2. La función NinjaScript OnBarUpdate se llama en el cierre de cada bar o en cada tick, dependiendo de la configuración en Inicializar. Abstracción, control y versatilidad Todos los lenguajes de scripting para el comercio hacen concesiones en la forma en que ciertos aspectos abstractos de negociación frente a la cantidad de control que ambos dan a y requieren por parte del usuario. Trading implica una serie de acciones bastante complejas: la evaluación de la estrategia de la lógica en cada barra y / o garrapatas, la colocación de múltiples órdenes de operaciones, tanto para la entrada y salida, el seguimiento y la actualización de las órdenes de operaciones en cada barra / tick, el procesamiento y la grabación se llena, y cancelando abierta órdenes, entre ellos uno-cancela-otros y contingentes órdenes. Un alto nivel de abstracción significa que gran parte de esta complejidad se oculta desde el programador y realiza automáticamente detrás de las escenas, lo que hace que sea más fácil de programar, pero ofrece menos control y versatilidad. Un menor nivel de abstracción deja gran parte del trabajo del programador, lo que hace la programación más difícil, pero por lo general proporciona un mayor control. Por ejemplo, algunos idiomas, como MetaQuotes Language 4 (MQL4), proporcionan comandos bastante básicas para manejar órdenes y se deja en manos del usuario para cancelar órdenes abiertas después de un relleno. Esto puede hacer más difícil la implementación de una estrategia que utiliza, por ejemplo, múltiples salidas (por ejemplo, un stop de protección, una salida de destino, y una salida basada en una condición lógica) porque cuando se golpea una salida, por otro, las órdenes pendientes tienen que ser cancelado por el código de estrategia. Por otro lado, esta delgada capa de abstracción proporciona el máximo control y versatilidad. AmiBroker Fórmula Idioma (AFL), por otro lado, ofrece una abstracción muy profundo en su forma básica en que el usuario sólo proporciona las condiciones en las que la entrada y salida han de llevarse a cabo, y el lenguaje (y la plataforma subyacente) hacerse cargo de cuándo y cómo las órdenes de operaciones reales se colocan y ejecutados. Por tipos más simples de las estrategias, esto hace que sea muy fácil de codificar la estrategia. Sin embargo, proporciona muy poca flexibilidad y control para el desarrollador de estrategia. De hecho, AmiBroker aparentemente reconoció esta limitación cuando se añade su denominada interfaz cartera backtester (Procedimiento backtest personalizado), que proporciona acceso a las funciones de nivel inferior para el control de las cosas, como la entrada de pedidos. Por desgracia, este enfoque independiente no se integra bien con el diseño original de la AFL. EasyLanguage ofrece varios tipos de abstracciones complejas. Inherente a cada estrategia EasyLanguage es el hecho de que la mayor parte del código, con excepción de las inicializaciones de variables, se ejecuta en cada barra. Si consulta dentro de las pruebas de back-bar está habilitado, una abstracción adicional está presente en que los cálculos adicionales se llevan a cabo detrás de las escenas para evaluar más de una vez cada bar, dependiendo de la configuración del usuario. En efecto, TradeStation tiene el equivalente de OnBarUpdate de NinjaScript, pero está oculta para el usuario y se maneja detrás de las escenas. EasyLanguage también maneja el procesamiento de pedidos en una forma en que la minimiza la carga sobre el usuario. Múltiples órdenes se pueden colocar en el código, y los no ejecutados se cancelarán como si de una sola se cancela-sí cuando uno está lleno. NinjaScript implementa abstracciones casi idénticos para la realización de pedidos y ejecución, incluyendo la cancelación de forma automática cada orden al cierre de cada barra. Esto es consistente con el hecho de que el código se ejecuta la estrategia en cada barra, lo que normalmente significa las instrucciones de código para hacer pedidos se repetirá en cada barra. Si las órdenes no caducan automáticamente al cierre de cada barra, tendrían que ser cancelado por la estrategia antes de colocar las nuevas. Procesamiento de matriz es otra área que pone de relieve el grado de abstracción entre los lenguajes de script. Dado que los indicadores y otros elementos de la estrategia lógica deben ser evaluados en cada barra de un gráfico de precios o una serie de datos, lenguajes de scripting para el comercio están basados ​​en matriz de por sí; es decir, que se benefician de realizar cálculos sobre las matrices de datos de precios, en lugar de realizar los cálculos bar-by-bar. Por ejemplo, si una estrategia incluye una media móvil y un estocástico, un enfoque consistiría en calcular la media móvil en el primer bar, calcular el estocástico en el mismo bar, evaluar la lógica de la estrategia para ese bar, a continuación, pasar a la siguiente barra . Sin embargo, es mucho más eficiente para calcular el promedio móvil para cada barra en el gráfico, a continuación, calcular el estocástico para cada barra en el gráfico, a continuación, evaluar la lógica de la estrategia. Este último es un ejemplo de procesamiento de matriz, que por lo general se puede realizar detrás de las escenas, incluso si no es evidente por la forma en que el código está escrito. EasyLanguage ofrece el mejor ejemplo de esto: el procesamiento de matriz está abstraído de distancia para que el usuario no tiene que preocuparse por ello. Por ejemplo, al codificar una función en EasyLanguage, usted escribe los cálculos que se deben realizar en la barra actual. Todo depende de que el compilador EasyLanguage para hacer los cálculos eficiente, presumiblemente a través de procesamiento de matriz. En AFL, por otro lado, el tratamiento conjunto está diseñado para ser conveniente pero es explícito en que usted tiene que ser consciente de que está procesando matrices de datos y tomar en cuenta en la forma de escribir el código. NinjaScript es similar a MQL 4 en que el uso de arrays es principalmente explícito. Sin embargo, en MQL4, el uso de matrices arbitrarias como entradas a los indicadores, como una media móvil de algo que no sea el precio, se maneja con torpeza, por lo que es difícil evaluar los indicadores de indicadores, como una media móvil de un estocástico. NinjaScript supera este problema potencial al proporcionar un tipo de matriz especial llamado DataSeries, que puede ser definido en el código de la estrategia y que se acepta como una entrada por ningún indicador que intrínsecamente tiene precio como una entrada. Esto hace que sea relativamente fácil de codificar indicadores anidadas. Ejemplo NinjaScript Código estrategia generada por Constructor El archivo está disponible en el siguiente enlace se auto-generada por Adaptrade Constructor en NinjaScript para NinjaTrader. El archivo se puede abrir en cualquier editor de texto, como el Bloc de notas. Para compilar la estrategia en NinjaTrader, guardarlo en la carpeta de Estrategia en la carpeta de documentos NinjaTrader, a continuación, abrirlo en el editor NinjaScript y haga clic en el botón de compilación. Una ruta de acceso típica para guardar el archivo es C: \ Users \ [su_nombre_de_usuario] \ Documentos \ NinjaTrader 7 \ bin \ \ Estrategia personalizada, en la que [su_nombre_de_usuario] es el nombre de usuario en la carpeta Usuarios. Alternativamente, copie el código en el portapapeles y pegarla en una estrategia en blanco dentro del editor NinjaScript. Salida NinjaScipt en el Generador estará disponible en la versión 1.7.0, con una fecha de lanzamiento prevista de 30 de junio de 2014. Descargar o abrir (archivo: Builder_Ninja_Ex. cs) Una cuestión de equilibrio Como se sugirió anteriormente, todos los lenguajes de scripting para negociar un equilibrio en algún punto del espectro entre un lenguaje muy abstracto que maneja mucho detrás de las escenas (por ejemplo, AFL) y un lenguaje fino abstraído que requiere que el usuario especifique cada paso de la negociación proceso (por ejemplo MQL4). NinjaScript es muy parecido EasyLanguage en que cae en algún punto intermedio. En comparación con EasyLanguage, NinjaScript podría decirse que hace que al menos algunos de sus abstracciones más clara, mientras que no haciéndolos mucho más compleja. Por ejemplo, el código que se ejecuta en cada barra es obvio ya que reside en la función OnBarUpdate. En EasyLanguage, puede que no sea inmediatamente evidente para un recién llegado que la mayor parte del código de la estrategia se ejecuta en el cierre de cada bar y que las variables no vuelvan a inicializar en cada barra. En NinjaScript, las variables no son parte de OnBarUpdate, por lo que es claro que cualquier inicialización realizado fuera de esa función, como por ejemplo en la función de inicialización, sucede sólo una vez. Por otro lado, EasyLanguage proporciona un nivel global más alto de abstracción, lo que puede hacer que sea más fácil de código una vez se comprenden las características de diseño de la lengua. Desde el punto de vista de un programador, hay 's mucho que admiro de NinjaScript. Su diseño es consistente con las convenciones de programación modernos, es fácilmente extensible, ofrece convenientes abstracciones comerciales para cosas tales como colocación de la orden, y se las arregla para tener claro lo que hace el código de forma de barra de bar. Además, aprovecha las características lingüísticas # biblioteca y C. Después de haber programado EasyLanguage de unos 20 años, es difícil evaluar otros lenguajes de scripting con ojos frescos. Sin embargo, si estuviera aprendiendo a programar estrategias de negociación de hoy - y dejando de lado cualquier consideración relativa a las diferentes plataformas de negociación - que muy bien podría elegir NinjaScript. Mike Bryant Adaptrade Software * Este artículo no pretende ser tutorial en la naturaleza y no discute características de la plataforma NinjaTrader. "Después de 20 años de cotización para las instituciones, he ganado una posición de operador senior específicamente porque de este Programa de Mentores Ejecutivo" Casper Johansen, Comerciante Institucional "Soy un comerciante institucional para un creador de mercado importante en las Islas Caimán y han sido el comercio en los mercados de Estados Unidos de Valores durante 18 años. En esta profesión que no se les paga un salario, le pagan un porcentaje de la cantidad total de beneficios que traen para sus clientes bajo gestión. Aquí trabajamos en la aceptación de la realidad de que se trata de un entorno lleno muy competitivo y el estrés. Desde el principio en una nueva decisión de la carrera, que estaba experimentando un segundo trimestre que comienza el de no rendimiento y una reducción que amenazó entonces mi posición. El cuento largo es a través de una referencia descubrí Jeff Kilian y de inmediato me retuvo su servicio.


No comments:

Post a Comment