diff --git a/nbproject/project.properties b/nbproject/project.properties index 488f31f..0e571b1 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sat, 25 Nov 2017 01:27:15 +0100 +#Sat, 25 Nov 2017 09:25:34 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/chart/MasterChart.java b/src/chart/MasterChart.java index 015ffdc..a7ef8a9 100644 --- a/src/chart/MasterChart.java +++ b/src/chart/MasterChart.java @@ -41,8 +41,7 @@ import sesim.OHLCData; import sesim.OHLCDataItem; import sesim.Quote; import indicators.SMAIndicator; - - +import org.json.JSONObject; /** * @@ -52,16 +51,21 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { private ChartDef chartDef; - SMAIndicator sma; + SMAIndicator sma1, sma2; class MyOHLCData extends OHLCData { - + SMAIndicator sma; + + MyOHLCData(SMAIndicator sma) { + this.sma = sma; + } + @Override public int size() { return sma.getData().size(); } - + @Override public OHLCDataItem get(int n) { return sma.getData().get(n); @@ -126,13 +130,30 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { chart.setXSCrollBar(xScrollBar); chart.addChartPainter(new ChartCrossPainter()); - sma = new indicators.SMAIndicator(mydata); - MyOHLCData mysma = new MyOHLCData(); + sma1 = new indicators.SMAIndicator(); + sma1.setParent(mydata); + + JSONObject co; + co = new JSONObject("{\"len\": 60}"); + sma1.putConfig(co); + MyOHLCData mysma1; + mysma1 = new MyOHLCData(sma1); p = new LineChartPainter(); - p.setOHLCData(mysma); - //p.setDataProvider(new SMA(get())); + p.setOHLCData(mysma1); + chart.addChartPainter(p); + sma2 = new indicators.SMAIndicator(); + sma2.setParent(mydata); + co = new JSONObject("{\"len\": 20}"); + sma2.putConfig(co); + MyOHLCData mysma2; + mysma2 = new MyOHLCData(sma2); + p = new LineChartPainter(); + p.setOHLCData(mysma2); + chart.addChartPainter(p); + + ChartPainter yp = new YLegendPainter(chart); // yp.setDataProvider(this); yp.setOHLCData(mydata); @@ -276,9 +297,14 @@ public class MasterChart extends javax.swing.JPanel implements QuoteReceiver { @Override public void UpdateQuote(Quote q) { - if (sma != null) { - sma.update(); + if (sma1 != null) { + sma1.update(); } + + if (sma2 != null) { + sma2.update(); + } + int s = mydata.size(); this.xScrollBar.setMaximum(s); repaint(); diff --git a/src/gui/Globals.java b/src/gui/Globals.java index 9fd703d..51ae791 100644 --- a/src/gui/Globals.java +++ b/src/gui/Globals.java @@ -138,6 +138,7 @@ public class Globals { } static AutoTraderLoader tloader; + static IndicatorLoader iloader; static void initGlobals() { ArrayList default_pathlist = new ArrayList<>(); @@ -149,11 +150,14 @@ public class Globals { default_pathlist.add(default_path); tloader = new AutoTraderLoader(default_pathlist); + iloader = new IndicatorLoader(default_pathlist); - SeSimClassLoader il = new SeSimClassLoader<>(Indicator.class); - il.setDefaultPathList(default_pathlist); - ArrayList>ires = il.getInstalledClasses(); - + iloader.getNames(); + +// SeSimClassLoader il = new SeSimClassLoader<>(Indicator.class); +// il.setDefaultPathList(default_pathlist); +// ArrayList> ires = il.getInstalledClasses(); + } static public final Logger LOGGER = Logger.getLogger("com.cauwersin.sesim"); diff --git a/src/indicators/BaseIndicator.java b/src/indicators/BaseIndicator.java index 4c6dfac..17b2cbf 100644 --- a/src/indicators/BaseIndicator.java +++ b/src/indicators/BaseIndicator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, tube + * Copyright (c) 2017, 7u83 * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,13 +26,14 @@ package indicators; import org.json.JSONObject; +import sesim.ConfigurableInterface; import sesim.Indicator; /** * * @author tube */ -public abstract class BaseIndicator implements Indicator{ +public abstract class BaseIndicator implements Indicator { @Override public String getName() { diff --git a/src/indicators/SMAIndicator.java b/src/indicators/SMAIndicator.java index 6dba64c..74c5812 100644 --- a/src/indicators/SMAIndicator.java +++ b/src/indicators/SMAIndicator.java @@ -25,6 +25,7 @@ */ package indicators; +import org.json.JSONObject; import sesim.OHLCData; import sesim.OHLCDataItem; @@ -38,16 +39,31 @@ public class SMAIndicator extends BaseIndicator { OHLCData indicator; - public SMAIndicator(OHLCData parent) { - this.parent = parent; + public SMAIndicator() { indicator = new OHLCData(); } - - public void setParent(OHLCData parent){ - + + public void setParent(OHLCData parent) { + this.parent = parent; } - int len = 20; + final String LEN = "len"; + int len = 60; + + @Override + public void putConfig(JSONObject cfg) { + + len = cfg.getInt(LEN); + + } + + @Override + public JSONObject getConfig() { + JSONObject r; + r = new JSONObject(); + r.put(LEN, len); + return r; + } private float getAt(int pos) { if (parent.size() == 0) { @@ -67,10 +83,9 @@ public class SMAIndicator extends BaseIndicator { } public void update() { - - + if (parent.size() == 0) { - + return; } diff --git a/src/sesim/ConfigurableInterface.java b/src/sesim/ConfigurableInterface.java index 5cf8a19..e31261d 100644 --- a/src/sesim/ConfigurableInterface.java +++ b/src/sesim/ConfigurableInterface.java @@ -31,7 +31,7 @@ import org.json.JSONObject; * * @author tube */ -public interface ConfigurableInterface { +public abstract interface ConfigurableInterface { /** * Get current configuration as JSON object. diff --git a/src/sesim/IndicatorLoader.java b/src/sesim/IndicatorLoader.java index cbd7aba..fbcecac 100644 --- a/src/sesim/IndicatorLoader.java +++ b/src/sesim/IndicatorLoader.java @@ -32,15 +32,31 @@ import java.util.ArrayList; * @author 7u83 <7u83@mail.ru> * @param */ -public class IndicatorLoader extends SeSimClassLoader { +public class IndicatorLoader extends SeSimClassLoader { /** - * - * @param class_type + * + * @param class_type */ - public IndicatorLoader(Class class_type) { - super(class_type); + public IndicatorLoader(ArrayList path_list) { + super(Indicator.class, path_list); + } + public ArrayList getNames() { + ArrayList> indicators; + indicators = this.getInstalledClasses(); + for (Class ic : indicators) { + Indicator i = (Indicator) this.newInstance(ic); + + String name = i.getName(); + System.out.printf("Name of Indicator: %s", name); + + } + + return new ArrayList(); + + + } }