Programmazione Prorealtime Prorealtime:formule, indicatori, oscillatori, tsi ... (15 lettori)

al-fx

Nuovo forumer
quale problema incontri? nel manuale del backtest, casi come questi sono spiegati

C

mentre lo rivedevo per spiegarlo mi sono accorto dell'errore di interpretazione, io volevo che dopo le prime indicazioni il programma cercasse l'ultima per fare l'ingresso , invece lui le valuta giustamente tutte insieme e, in pratica non si erano mai verificate, scusate
 

scalatore1

Nuovo forumer
Buon giorno a tutti traders.Non riesco a capire il motivo per cui gli istogrammi 17-2-5 non coincidono con la colorazione dell'indicatore "bollinger band width tex dax".Non differenzia la "average" con la "time series moving average"...Il listato è questo..
Codice:
c1 = CALL "BOLLINGER BAND WIDTH TEX DAX"
c2= TimeSeriesAverage[10](c1)
if c2>c2[1] then
    tex=1
else
    tex=-1
endif
return tex

grazie per l'aiuto e buoni trade a tutti
1297952579daxfull0311future.png
 
Ultima modifica:
Salve a tutti,
grazie per il lavro che svolgete qui.
Volevo chiedere se qualcuno riusciva capire dal codice il funzionamento di questo indicatore di volumi PVP.Per capire come funziona veramente e magari tradurlo se non difficile in prorealtime.
grazie ancora.
// This namespace holds all indicators and is required. Do not change it.
namespace NinjaTrader.Indicator
{
/// <summary>
/// Peak volume price
/// </summary>
[Description("Peak volume price")]
public class PVP : Indicator
{
#region Variables
// Wizard generated variables
// User defined variables (add any user defined variables below)
#endregion
/// <summary>
/// This method is used to configure the indicator and is called once before any bar data is loaded.
/// </summary>
protected override void Initialize()
{
Add(
new Plot(Color.FromKnownColor(KnownColor.Black), PlotStyle.Line, "PVPLine"));
CalculateOnBarClose =
false;
Overlay =
true;
PriceTypeSupported =
false;
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
double MaxVolume = 0;
double MaxPrice = 0.0;
for (int x = 0; x <= Bars.BarsSinceSession; x++)
{
if (Volume[x] > MaxVolume)
{
MaxVolume = Volume[x];
MaxPrice = Close[x];
}
}
PVPLine.Set(MaxPrice);
}
#region Properties
[Browsable(
false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove
[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove
public DataSeries PVPLine
{
get { return Values[0]; }
}
#endregion
}
}
#region NinjaScript generated code. Neither change nor remove.
// This namespace holds all indicators and is required. Do not change it.
namespace NinjaTrader.Indicator
{
public partial class Indicator : IndicatorBase
{
private PVP[] cachePVP = null;
private static PVP checkPVP = new PVP();
/// <summary>
/// Peak volume price
/// </summary>
/// <returns></returns>
public PVP PVP()
{
return PVP(Input);
}
/// <summary>
/// Peak volume price
/// </summary>
/// <returns></returns>
public PVP PVP(Data.IDataSeries input)
{
if (cachePVP != null)
for (int idx = 0; idx < cachePVP.Length; idx++)
if (cachePVP[idx].EqualsInput(input))
return cachePVP[idx];
PVP indicator =
new PVP();
indicator.BarsRequired = BarsRequired;
indicator.CalculateOnBarClose = CalculateOnBarClose;
indicator.Input = input;
indicator.SetUp();
PVP[] tmp =
new PVP[cachePVP == null ? 1 : cachePVP.Length + 1];
if (cachePVP != null)
cachePVP.CopyTo(tmp,
0);
tmp[tmp.Length -
1] = indicator;
cachePVP = tmp;
Indicators.Add(indicator);
return indicator;
}
}
}
// This namespace holds all market analyzer column definitions and is required. Do not change it.
namespace NinjaTrader.MarketAnalyzer
{
public partial class Column : ColumnBase
{
/// <summary>
/// Peak volume price
/// </summary>
/// <returns></returns>
[Gui.Design.WizardCondition("Indicator")]
public Indicator.PVP PVP()
{
return _indicator.PVP(Input);
}
/// <summary>
/// Peak volume price
/// </summary>
/// <returns></returns>
public Indicator.PVP PVP(Data.IDataSeries input)
{
return _indicator.PVP(input);
}
}
}
// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
public partial class Strategy : StrategyBase
{
/// <summary>
/// Peak volume price
/// </summary>
/// <returns></returns>
[Gui.Design.WizardCondition("Indicator")]
public Indicator.PVP PVP()
{
return _indicator.PVP(Input);
}
/// <summary>
/// Peak volume price
/// </summary>
/// <returns></returns>
public Indicator.PVP PVP(Data.IDataSeries input)
{
if (InInitialize && input == null)
throw new ArgumentException("You only can access an indicator with the default input/bar series from within the 'Initialize()' method");
return _indicator.PVP(input);
}
}
}
#endregion
 

tetsuo

Guest
Buon giorno a tutti traders.Non riesco a capire il motivo per cui gli istogrammi 17-2-5 non coincidono con la colorazione dell'indicatore "bollinger band width tex dax".Non differenzia la "average" con la "time series moving average"...Il listato è questo..
Codice:
c1 = CALL "BOLLINGER BAND WIDTH TEX DAX"
c2= TimeSeriesAverage[10](c1)
if c2>c2[1] then
    tex=1
else
    tex=-1
endif
return tex

Ciao scalatore

hai provato a plottare le due variabili c1 e c2 per vedere se si comportano allo stesso modo dell'indicatore sopra, il problema potrebbe essere legato all'arrotondamento, inoltre tieni presente che il cambio colore PRT lo fa => e <, mentre nel tuo codice tu fai il contrario, ovvero, > else =<
 

tetsuo

Guest
Salve a tutti,
grazie per il lavro che svolgete qui.
Volevo chiedere se qualcuno riusciva capire dal codice il funzionamento di questo indicatore di volumi PVP.Per capire come funziona veramente e magari tradurlo se non difficile in prorealtime.
grazie ancora.

Ciao Omar

quell'indicatore plotta una linea corrispondente al Close della candela che durante la sessione (dovrebbe intendersi la giornata borsistica) ha avuto il maggior numero di scambi.


Codice:
if day<>day[1] then
	PVP=Close
	maxvolume=Volume
endif
maxvolume=max(Volume,maxvolume)
If maxvolume>maxvolume[1] then
	PVP=Close
endif
return PVP
 

scalatore1

Nuovo forumer
Ciao scalatore

hai provato a plottare le due variabili c1 e c2 per vedere se si comportano allo stesso modo dell'indicatore sopra, il problema potrebbe essere legato all'arrotondamento, inoltre tieni presente che il cambio colore PRT lo fa => e <, mentre nel tuo codice tu fai il contrario, ovvero, > else =<

Ho provato questo:l'istogramma 17-2-5 coincide con la media mobile dell'indicatore "bollinger band width tex dax" che ha questo codice
Codice:
linea=(BollingerUp[20](close)-BollingerDown[20](close))/20
return linea

Quello che non capisco è perche' viene riconosciuta una media mobile semplice quando in realta' in questo codice ho inserito "timeseriesaverage" che lavora diversamente....
Codice:
c1 = CALL "BOLLINGER BAND WIDTH TEX DAX"
c2= timeseriesAverage[10](c1)
if c2<c2[1] then
    tex=1
else
    tex=-1
endif
return tex


1297972334daxfull0311future.png

grazie per il tuo sempre prezioso aiuto
cristian
 

tetsuo

Guest
Ho provato questo:l'istogramma 17-2-5 coincide con la media mobile dell'indicatore "bollinger band width tex dax" che ha questo codice
Codice:
linea=(BollingerUp[20](close)-BollingerDown[20](close))/20
return linea

Quello che non capisco è perche' viene riconosciuta una media mobile semplice quando in realta' in questo codice ho inserito "timeseriesaverage" che lavora diversamente....
Codice:
c1 = CALL "BOLLINGER BAND WIDTH TEX DAX"
c2= timeseriesAverage[10](c1)
if c2<c2[1] then
    tex=1
else
    tex=-1
endif
return tex


1297972334daxfull0311future.png

grazie per il tuo sempre prezioso aiuto
cristian

Bho a me lavora correttamente...ho provato ad inserire i due codici e questa è una shot


prova 25 sarebbe il tuo 17-2-5 (ho aggiunto c1 e c2 al return) e prova 24 è BOLLINGER BAND WIDTH TEX DAX ...io non ho molta fantasia nei nomi :D

DAX Full0311 Future.png




sicuro che inserisci l'indicatore corretto nel grafo ????
 

scalatore1

Nuovo forumer
Bho a me lavora correttamente...ho provato ad inserire i due codici e questa è una shot


Accidenti Daniele grazie mille.Tuttavia non riesco.Ho provato ad inserire tutto in una finestra con il seguente codice
Codice:
c1=(bollingerup[20](close)-bollingerdown[20](close))/20
c2=timeseriesaverage[10](c1)
if c2<c2[1] then
    tex=1
else
    tex=-1
endif
return tex,c2,c1
non riporta la media time series.infatti restituisce uguale a :
Codice:
c1=(bollingerup[20](close)-bollingerdown[20](close))/20
c2=Average[10](c1)
if c2<c2[1] then
    tex=1
else
    tex=-1
endif
return tex,c2,c1

per visualizzare la timeseriesaverage la carico dalla chiave inglese della stessa finestra ma gli istogrammi seguono la media mobile semplice....Grazie millllllee

1298050138daxfull0311future.png
....
 

Users who are viewing this thread

Alto