Pide tu indicador en español aca - waldo - 04-20-2017
Hola gente:
Quise abrir este hilo para que pusieran comentarios sobre que indicadores necesitan mas que no esten disponibles o les sea difícil conseguir. Despues tengo en planes hacer un poll para que voten e ir desarrollando los mas votados.
Saludos.
RE: Pide tu indicador en español aca - johnbarrera25 - 04-20-2017
muchas gracias, de hecho megustaria se le pidiera agregar, que se pudiera ver el level2, tipo bookmap o smartbook, ya que este tambien da pistas de que piensan hacer los profesionales...
muchas gracias.
RE: Pide tu indicador en español aca - Support - 04-21-2017
(04-20-2017, 04:47 PM)johnbarrera25 escribió: muchas gracias, de hecho megustaria se le pidiera agregar, que se pudiera ver el level2, tipo bookmap o smartbook, ya que este tambien da pistas de que piensan hacer los profesionales...
muchas gracias.
te refieres a un heat map..???
o solo al level II???
RE: Pide tu indicador en español aca - waldo - 04-21-2017
Ok level II, pense ponerlo integrado pero lo pudiera hacer independiente.
RE: Pide tu indicador en español aca - johnbarrera25 - 05-06-2017
Hola, Waldo muchas gracias por el foro, tienes algun indicador, donde pueda colocar un volumen profile, pero solo de las velas que yo seleccione, por ejemplo dos o tres velas o mejor que uno pueda seleccionar un rango, para NT8, muchas gracias
RE: Pide tu indicador en español aca - waldo - 05-06-2017
Hola John. De tenerlo, yo no lo tengo. Hay pocos indicadores para NT8 porque hicieron un cambio grande en la plataforma. Pero creo que lo podemos tener. Estamos considerando poner un perfil de volumen (por sesion) en algun momento. Realmente lo tengo pero por toda la sesión, no es configurable así como dices. Le puedo hacer el cambio. Me puedes explicar mejor como se te ocurre esa selección? O sea en detalle.
O sea la parte complicada no es dibujar ese perfil sino la selección de las velas que sería la interface con NT8 quela desconozco. Si se que NT8 tiene unos eventos de mouse y touch que pudiera capturar. Digamos apretar un boton y seleccionar un rectangulo en el gráfico o algo así. Aca tengo un indicador que pone graficos en el chart, lo puedo estudiar.
RE: Pide tu indicador en español aca - waldo - 05-07-2017
Lo que el pidió lo puedo hacer relativamente rápido, no es gran problema. Claro ahora estoy en este proyecto pero cuando temine le caigo a la lista del TODO que tengo aca. Estoy ahora sacando versiones como algo secundario.
RE: Pide tu indicador en español aca - Castapio - 07-24-2017
Yo quisiera el indicador de Volatilidad Historica. Tengo el codigo para NT7 y quisiera pasarlo al NT8 pero no tengo ni idea de programacion. Si lo cuelgo alguie prodia pasarlo a NT8?
RE: Pide tu indicador en español aca - waldo - 07-24-2017
(07-24-2017, 05:56 PM)Castapio escribió: Yo quisiera el indicador de Volatilidad Historica. Tengo el codigo para NT7 y quisiera pasarlo al NT8 pero no tengo ni idea de programacion. Si lo cuelgo alguie prodia pasarlo a NT8?
Hola. Pudieramos echarle un vistazo, lo que sería mas adelante pues ahora estamos muy ocupados en ciertas cosas. Pero si otra personas en el forum lo quiere hacer no tenemos inconvenientes. Subelo.
RE: Pide tu indicador en español aca - Castapio - 07-25-2017
(07-24-2017, 09:35 PM)waldo escribió: (07-24-2017, 05:56 PM)Castapio escribió: Yo quisiera el indicador de Volatilidad Historica. Tengo el codigo para NT7 y quisiera pasarlo al NT8 pero no tengo ni idea de programacion. Si lo cuelgo alguie prodia pasarlo a NT8?
Hola. Pudieramos echarle un vistazo, lo que sería mas adelante pues ahora estamos muy ocupados en ciertas cosas. Pero si otra personas en el forum lo quiere hacer no tenemos inconvenientes. Subelo.
Os dejo el código para NT7
------------------------------------------------------------------------------------------------
El uso de declaraciones
Código: #region
using System;
usando System.Diagnostics;
usando System.Drawing;
usando System.Drawing.Drawing2D;
usando System.ComponentModel;
usando System.Xml.Serialization;
usando NinjaTrader.Cbi;
usando NinjaTrader.Data;
usando NinjaTrader.Gui.Chart;
#endregion
// Este espacio de nombres contiene todos los indicadores y no se requiere. No lo cambie.
espacio de nombres NinjaTrader.Indicator
{
/// <summary>
/// indicador de volatilidad histórica
/// </ summary>
[Description ( "volatilidad histórica")]
HistVolAny clase pública: Indicador
{
Variables #REGION
// Asistente genera las variables
período int privado = 9; // El ajuste por defecto para el Período
intervalo int privado = 6; // El ajuste predeterminado para el intervalo
doble sumsqdev privado = 0;
doble sumnatlog privado = 0;
doble closeratio privado = 0;
doble privada media = 0;
int sessioncount privada = 0;
doble histvolatile privado = 0;
double [] natlog privado;
double [] squareddeviation privado;
// las variables definidas por el usuario (añada variables definidas cualquier usuario a continuación)
#endregion
/// <summary>
/// Este método se utiliza para configurar el indicador y se llama una vez antes de cargar los datos bar.
/// </ summary>
override protected void Initialize ()
{
Añadir (nueva parcela (Color.Red, PlotStyle.Line, "La volatilidad histórica de cualquier período de tiempo"));
CalculateOnBarClose = true;
Overlay = false;
PriceTypeSupported = true;
natlog = new double [período];
squareddeviation = new double [período];
}
/// <summary>
/// Llamado en cada evento de actualización de la barra (garrapata entrante)
/// </ summary>
protected override OnBarUpdate void ()
{
// Sólo permita que este se ejecute en un período tipo minuto.
si (CurrentBar <período + 1 ||
(Bars.Period.Id == PeriodType.Tick)
|| (Bars.Period.Id == PeriodType.Range)
|| (Bars.Period.Id == PeriodType.Second)
|| (Bars.Period.Id == PeriodType.Volume)
|| (Bars.Period.Id == PeriodType.Year))
{Value.Set (0);
regreso;}
for (int i = 0; i <período; i ++)
{
closeratio = Cerrar [i] / Cerrar [i + 1];
natlog [i] = Math.log (closeratio);
}
for (int i = 0; i <período; i ++)
sumnatlog + = natlog [i];
media = sumnatlog / período;
for (int i = 0; i <período; i ++)
squareddeviation [i] = Math.pow (natlog [i] - media, 2);
for (int i = 0; i <período; i ++)
sumsqdev + = squareddeviation [i];
si (Bars.Period.Id == PeriodType.Minute)
histvolatile = Math.Sqrt (Math.Abs (sumsqdev / período)) * Math.Sqrt (252 * 1440 / Bars.Period.Value) * 100;
más
si (Bars.Period.Id == PeriodType.Day)
histvolatile = Math.Sqrt (Math.Abs (sumsqdev / período)) * Math.Sqrt (252 / Bars.Period.Value) * 100;
más
si (Bars.Period.Id == PeriodType.Week)
histvolatile = Math.Sqrt (Math.Abs (sumsqdev / período)) * Math.Sqrt (52 / Bars.Period.Value) * 100;
si (Bars.Period.Id == PeriodType.Month)
histvolatile = Math.Sqrt (Math.Abs (sumsqdev / período)) * Math.Sqrt (12 / Bars.Period.Value) * 100;
sumnatlog = 0; // variables para restablecer siguiente iteración
sumsqdev = 0; //ídem
Value.Set (histvolatile);
}
Propiedades #REGION
[Navegable (false)] // esta línea evita que la serie de datos que se muestren en el diálogo de propiedades de indicador, no eliminar
[XmlIgnore ()] // esta línea se asegura de que el indicador se puede guardar / recuperado como parte de una plantilla de gráfico, no eliminar
DataSeries públicos Valor
{
obtener valores de retorno {[0]; }
}
[Description ( "período")]
[Categoría ( "Parámetros")]
Período public int
{
{conseguir período de retorno; }
conjunto {período = Math.max (1, valor); }
}
#endregion
}
}
#region NinjaScript código generado. Cambiar ni eliminar.
// Este espacio de nombres contiene todos los indicadores y no se requiere. No lo cambie.
espacio de nombres NinjaTrader.Indicator
{
Indicador clase parcial pública: IndicatorBase
{
HistVolAny privado [] cacheHistVolAny = null;
HistVolAny checkHistVolAny = new HistVolAny estática privada ();
/// <summary>
/// volatilidad histórica
/// </ summary>
/// <returns> </ devoluciones>
pública HistVolAny HistVolAny (periodo int)
{
volver HistVolAny (Entrada, período);
}
/// <summary>
/// volatilidad histórica
/// </ summary>
/// <returns> </ devoluciones>
pública HistVolAny HistVolAny (entrada Data.IDataSeries, periodo int)
{
checkHistVolAny.Period = período;
período = checkHistVolAny.Period;
si (cacheHistVolAny! = null)
for (int idx = 0; idx <cacheHistVolAny.Length; idx ++)
si (cacheHistVolAny [idx] .Period == período && cacheHistVolAny [idx] .EqualsInput (entrada))
volver cacheHistVolAny [idx];
indicador HistVolAny = new HistVolAny ();
indicator.BarsRequired = BarsRequired;
indicator.CalculateOnBarClose = CalculateOnBarClose;
indicator.Input = entrada;
indicator.Period = período;
indicator.SetUp ();
HistVolAny [] = tmp nueva HistVolAny [cacheHistVolAny == null? 1: cacheHistVolAny.Length + 1];
si (cacheHistVolAny! = null)
cacheHistVolAny.CopyTo (tmp, 0);
tmp [tmp.Length - 1] = indicador;
cacheHistVolAny = tmp;
Indicators.Add (indicador);
indicador de retorno;
}
}
}
// Este espacio de nombres contiene todas las definiciones de columnas analizador de mercado y es necesario. No lo cambie.
espacio de nombres NinjaTrader.MarketAnalyzer
{
Columna clase parcial pública: ColumnBase
{
/// <summary>
/// volatilidad histórica
/// </ summary>
/// <returns> </ devoluciones>
[Gui.Design.WizardCondition ( "Indicador")]
pública Indicator.HistVolAny HistVolAny (periodo int)
{
volver _indicator.HistVolAny (Entrada, período);
}
/// <summary>
/// volatilidad histórica
/// </ summary>
/// <returns> </ devoluciones>
pública Indicator.HistVolAny HistVolAny (entrada Data.IDataSeries, periodo int)
{
volver _indicator.HistVolAny (entrada, período);
}
}
}
// Este espacio de nombres contiene todas las estrategias y es necesario. No lo cambie.
espacio de nombres NinjaTrader.Strategy
{
Estrategia clase parcial pública: StrategyBase
{
/// <summary>
/// volatilidad histórica
/// </ summary>
/// <returns> </ devoluciones>
[Gui.Design.WizardCondition ( "Indicador")]
pública Indicator.HistVolAny HistVolAny (periodo int)
{
volver _indicator.HistVolAny (Entrada, período);
}
/// <summary>
/// volatilidad histórica
/// </ summary>
/// <returns> </ devoluciones>
pública Indicator.HistVolAny HistVolAny (entrada Data.IDataSeries, periodo int)
{
si (InInitialize && entrada == null)
throw new ArgumentException ( "Sólo se puede acceder a un indicador con el / la serie de barras de entrada por defecto desde dentro del método 'initialize ()'");
volver _indicator.HistVolAny (entrada, período);
}
}
}
#endregion
|