Imroved Indicator interface, draws two indicators now
This commit is contained in:
parent
ff0e8bc4b9
commit
f6eab6b6a2
@ -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=
|
||||
|
@ -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();
|
||||
|
@ -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<Indicator> il = new SeSimClassLoader<>(Indicator.class);
|
||||
il.setDefaultPathList(default_pathlist);
|
||||
ArrayList<Class<Indicator>>ires = il.getInstalledClasses();
|
||||
|
||||
iloader.getNames();
|
||||
|
||||
// SeSimClassLoader<Indicator> il = new SeSimClassLoader<>(Indicator.class);
|
||||
// il.setDefaultPathList(default_pathlist);
|
||||
// ArrayList<Class<Indicator>> ires = il.getInstalledClasses();
|
||||
|
||||
}
|
||||
|
||||
static public final Logger LOGGER = Logger.getLogger("com.cauwersin.sesim");
|
||||
|
@ -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() {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ import org.json.JSONObject;
|
||||
*
|
||||
* @author tube
|
||||
*/
|
||||
public interface ConfigurableInterface {
|
||||
public abstract interface ConfigurableInterface {
|
||||
|
||||
/**
|
||||
* Get current configuration as JSON object.
|
||||
|
@ -32,15 +32,31 @@ import java.util.ArrayList;
|
||||
* @author 7u83 <7u83@mail.ru>
|
||||
* @param <T>
|
||||
*/
|
||||
public class IndicatorLoader<T> extends SeSimClassLoader {
|
||||
public class IndicatorLoader extends SeSimClassLoader<Indicator> {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param class_type
|
||||
*
|
||||
* @param class_type
|
||||
*/
|
||||
public IndicatorLoader(Class class_type) {
|
||||
super(class_type);
|
||||
public IndicatorLoader(ArrayList<String> path_list) {
|
||||
super(Indicator.class, path_list);
|
||||
|
||||
}
|
||||
|
||||
public ArrayList<String> getNames() {
|
||||
ArrayList<Class<Indicator>> indicators;
|
||||
indicators = this.getInstalledClasses();
|
||||
for (Class<Indicator> ic : indicators) {
|
||||
Indicator i = (Indicator) this.newInstance(ic);
|
||||
|
||||
String name = i.getName();
|
||||
System.out.printf("Name of Indicator: %s", name);
|
||||
|
||||
}
|
||||
|
||||
return new ArrayList<String>();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user