for example build strategy to check for data gaps and print it , or fix gaps and spikes if possible or normalized
Announcement
Collapse
Looking for a User App or Add-On built by the NinjaTrader community?
Visit NinjaTrader EcoSystem and our free User App Share!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less
Partner 728x90
Collapse
NinjaTrader
Data Gaps Fix or Print
Collapse
X
-
Data Gaps Fix or Print
Hello !!! wood some one give me idea how to access data and fix it ?
for example build strategy to check for data gaps and print it , or fix gaps and spikes if possible or normalized
-
Hello,
I am uncertain of your question, are you asking how to correct gaps in historcial data?
A strategy would have no way of detecting gaps in data because the strategy would not be executed on bars that are not present.
You could potentially check the date of each bar to detect an amount of time missing, but I would need to have more details on what you are trying to accomplish first.
I look forward to being of further assistance.JesseNinjaTrader Customer Service
-
Hi !!! for example Trading Software RigthEdge have plugin build in or external plugin like this
I Think wood be very cool to add this future to Ninjatrader
#region System class
public class MySystem : MySystemBase
{
public override void Startup()
{
// Perform initialization or set system wide options here
}
public override void Shutdown()
{
foreach (Symbol mysym in Symbols)
{
TimeSpan difftime;
SymbolScripts[mysym].LastBarDate = SymbolScripts[mysym].Bars.Current.BarStartTime;
SymbolScripts[mysym].TotalBars = SymbolScripts[mysym].LastBarDate.TimeOfDay.TotalMinutes - SymbolScripts[mysym].FirstBarDate.TimeOfDay.TotalMinutes;
difftime = SymbolScripts[mysym].LastBarDate - SymbolScripts[mysym].FirstBarDate;
Console.WriteLine(mysym.Name + " ---------- LastBarDate=" + SymbolScripts[mysym].LastBarDate);
Console.WriteLine(mysym.Name + " nb of minutes=" + difftime.TotalMinutes);
if (SymbolScripts[mysym].TotalBarGaps == 0)
{
//Console.WriteLine(mysym.Name + ": No bar missing !");
SystemData.Output.Add(OutputSeverityLevel.Informat ional, mysym.Name + ": No bar missing !");
}
else
{
//Console.WriteLine(mysym.Name + ": ERROR " + SymbolScripts[mysym].TotalBarGaps + " gaps of missing bars !");
SystemData.Output.Add(OutputSeverityLevel.Error, mysym.Name + ": " + SymbolScripts[mysym].TotalBarGaps + " gaps of missing bars !");
}
}
//LastBarDate = Bars.Current.BarStartTime;
//NbBars = LastBarDate - FirstBarDate;
}
}
#endregion
/*
Bars Checkers v0.1
System parameters:
MaxPercentage = max allowed price jump (close) between two consecutives bars, in percentage (eg 0.05 for 5%)
BarFrequency = your data bar frequency in minutes
*/
public class MySymbolScript : MySymbolScriptBase
{
public DateTime FirstBarDate;
public DateTime LastBarDate;
public double TotalBars, TotalBarGaps;
public override void Startup()
{
// Perform initialization here.
TotalBarGaps = 0;
}
public override void NewBar()
{
// Put your trading code here
if (Bars.Count == 1)
{
FirstBarDate = Bars.Current.BarStartTime;
OutputMessage(Symbol.Name + " ---------- FirstBarDate=" + FirstBarDate);
//BarLookBackFromDate(
}
else
{
TimeSpan bartimediff = Bars.Current.BarStartTime - Bars.LookBack(1).BarStartTime;
//TODO compare with system freq or ...
if (bartimediff.TotalMinutes > (int) SystemParameters["BarFrequency"])
{
TotalBarGaps++;
SystemData.Output.Add(OutputSeverityLevel.Error, Symbol.Name + ": bar(s) missing between " + Bars.LookBack(1).BarStartTime + " and " + Bars.Current.BarStartTime);
}
if (Bars.Current.Close == 0)
{
SystemData.Output.Add(OutputSeverityLevel.Error, Symbol.Name + " null value at time " + Bars.Current.BarStartTime);
}
else if (Bars.LookBack(1).Close != 0)
{
double barreturn = (Bars.Current.Close / Bars.LookBack(1).Close) - 1;
if (Math.Abs(barreturn) > SystemParameters["MaxPercentage"])
{
SystemData.Output.Add(OutputSeverityLevel.Warning, Symbol.Name + " big jump between two consecutive bars: " + Bars.LookBack(1).Close + " to " + Bars.Current.Close + " at time " + Bars.Current.BarStartTime);
}
}
}
}
public override void OrderFilled(Position position, Trade trade)
{
// This method is called when an order is filled
}
public override void OrderCancelled(Position position, Order order, string information)
{
// This method is called when an order is cancelled or rejected
}
}
Comment
-
Hello GainForex,
Thanks for your posts and recommendation for improving our product.
For realtime tick filtering, please see the helpguide section here: http://ninjatrader.com/support/helpG.../?data_tab.htm
"Filter bad ticks % off market - Sets the real-time tick filter offset percentage (0.1 equals 1/10 of a percent)"
For editing or deleting bar data, please see: http://ninjatrader.com/support/helpG...7/?editing.htmPaul H.NinjaTrader Customer Service
Comment
-
Originally posted by GainForex View PostHello !!! i,m sorry i ask about historical data modification or gap check!!!
with custom script in strategy tester
if possible to access and modify data or check for Historical Gaps from strategy script
and print it in error platform window
So are you talking live data or market replay? Or backtest?
Comment
-
Originally posted by GainForex View PostHello !!! i,m sorry i ask about historical data modification or gap check!!!
with custom script in strategy tester
if possible to access and modify data or check for Historical Gaps from strategy script
and print it in error platform window
There is no automatic means in ninjatrader to accomplish this.
You can create code within a strategy to check for gaps and could print to the output window however there is no method available to adjust the data within a strategy.
I previously provided a link to the Historical Data Manager for editing historical data.Paul H.NinjaTrader Customer Service
Comment
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by wzgy0920, 02-22-2024, 01:11 AM
|
5 responses
32 views
0 likes
|
Last Post
by wzgy0920
Today, 10:33 PM
|
||
Started by wzgy0920, Yesterday, 09:53 PM
|
2 responses
49 views
0 likes
|
Last Post
by wzgy0920
Today, 10:29 PM
|
||
Started by Kensonprib, 04-28-2021, 10:11 AM
|
5 responses
191 views
0 likes
|
Last Post
by Hasadafa
Today, 10:19 PM
|
||
Started by GussJ, 03-04-2020, 03:11 PM
|
11 responses
3,230 views
0 likes
|
Last Post Today, 08:07 PM | ||
Started by andrewtrades, Today, 04:57 PM
|
1 response
14 views
0 likes
|
Last Post Today, 05:02 PM |
Comment