From 2cdb9a4f34f89d65a4a9e7a8eaba5c3aaf495f4d Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 12:59:00 +0100 Subject: [PATCH 1/4] Base class for indicators. --- src/indicators/BaseIndicator.java | 45 +++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/indicators/BaseIndicator.java diff --git a/src/indicators/BaseIndicator.java b/src/indicators/BaseIndicator.java new file mode 100644 index 0000000..8cba92f --- /dev/null +++ b/src/indicators/BaseIndicator.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2017, tube + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package indicators; + +import sesim.Indicator; + +/** + * + * @author tube + */ +public class BaseIndicator implements Indicator{ + + @Override + public String getName() { + return this.getClass().getName(); + } + + @Override + public String getDescription() { + return ""; + } +} From 6889f37915ccfc558ba42830f59b72f2c5165646 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 12:59:50 +0100 Subject: [PATCH 2/4] Derives now from BaseIndicator --- src/indicators/RSIIndicator.java | 3 +-- src/indicators/SMAIndicator.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/indicators/RSIIndicator.java b/src/indicators/RSIIndicator.java index 4ba80fb..e3d235b 100644 --- a/src/indicators/RSIIndicator.java +++ b/src/indicators/RSIIndicator.java @@ -25,12 +25,11 @@ */ package indicators; -import sesim.Indicator; /** * * @author 7u83 <7u83@mail.ru> */ -public class RSIIndicator implements Indicator{ +public class RSIIndicator extends BaseIndicator{ } diff --git a/src/indicators/SMAIndicator.java b/src/indicators/SMAIndicator.java index 6f578a7..376782f 100644 --- a/src/indicators/SMAIndicator.java +++ b/src/indicators/SMAIndicator.java @@ -25,7 +25,6 @@ */ package indicators; -import sesim.Indicator; import sesim.OHLCData; import sesim.OHLCDataItem; @@ -33,7 +32,7 @@ import sesim.OHLCDataItem; * * @author 7u83 <7u83@mail.ru> */ -public class SMAIndicator implements Indicator { +public class SMAIndicator extends BaseIndicator { private OHLCData parent; From 19a26e605ea8421a8bb4594544634f7a7775370c Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 13:00:17 +0100 Subject: [PATCH 3/4] Added some basic methods. --- src/sesim/Indicator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sesim/Indicator.java b/src/sesim/Indicator.java index de4ceec..7f9cf21 100644 --- a/src/sesim/Indicator.java +++ b/src/sesim/Indicator.java @@ -30,5 +30,6 @@ package sesim; * @author 7u83 <7u83@mail.ru> */ public interface Indicator { - + public String getName(); + public String getDescription(); } From 2e34143467969cd0eecbbef66ecab9e0a9eaaec2 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 14:55:26 +0100 Subject: [PATCH 4/4] Introduced ConfigurableInterface --- nbproject/private/private.xml | 59 +++++++++++++++++++++++----- nbproject/project.properties | 2 +- src/sesim/AutoTraderInterface.java | 28 +++++-------- src/sesim/ConfigurableInterface.java | 50 +++++++++++++++++++++++ 4 files changed, 111 insertions(+), 28 deletions(-) create mode 100644 src/sesim/ConfigurableInterface.java diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 3709b8c..7659825 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -4,20 +4,61 @@ file:/home/tube/NetBeansProjects/SeSim/src/chart/MasterChart.java - file:/home/tube/NetBeansProjects/SeSim/src/sesim/OHLCData.java - file:/home/tube/NetBeansProjects/SeSim/src/resources/files/defaultcfg.json + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Quote.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/tools/NummericCellRenderer.java file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderInterface.java - file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/LineChartPainter.java - file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderGui.java - file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderLoader.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Account.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/ManTrader/ManTraderConsoleDialog.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/SeSimApplication.java file:/home/tube/NetBeansProjects/SeSim/src/gui/Globals.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/OHLCChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/QuotePanel.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/MainChart.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/ChartDef.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/OHLCData.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/MinMax.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/XLegendPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/LineChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Exchange.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Stock.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Locker.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/ChartPanel.java + file:/home/tube/NetBeansProjects/SeSim/src/indicators/BaseIndicator.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/OHLCDataItem.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/AboutDialog.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/OpenOrdersList.java + file:/home/tube/NetBeansProjects/SeSim/src/indicators/RSIIndicator.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/YLegendPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/AskBook.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/TestChartdialog.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/RandomTraderA.java + file:/home/tube/NetBeansProjects/SeSim/test/sesim/Test.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/ChartCrossPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/StatisticsPanel.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderLoader.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/ManTrader/ManTrader.java file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/ChartPainter.java file:/home/tube/NetBeansProjects/SeSim/src/indicators/SMAIndicator.java - file:/home/tube/NetBeansProjects/SeSim/.git/config - file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/OHLCChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/OHLCDataProvider.java + file:/home/tube/NetBeansProjects/SeSim/src/traders/RandomTraderB.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Logger.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/EditPreferencesDialog.java file:/home/tube/NetBeansProjects/SeSim/src/sesim/Indicator.java - file:/home/tube/NetBeansProjects/SeSim/src/indicators/EMAIndicator.java - file:/home/tube/NetBeansProjects/SeSim/src/sesim/SeSimClassLoader.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderBase.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/Statistics.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/EditStrategies.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/Chart.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/IDGenerator.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/AutoTraderGui.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/jp99.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/orderbook/OrderBook.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/OrderBook.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/painter/CandleStickChartPainter.java + file:/home/tube/NetBeansProjects/SeSim/src/gui/BidBook.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Scheduler.java + file:/home/tube/NetBeansProjects/SeSim/src/chart/SuperDlg.java + file:/home/tube/NetBeansProjects/SeSim/src/sesim/Order.java + file:/home/tube/NetBeansProjects/SeSim/README.md diff --git a/nbproject/project.properties b/nbproject/project.properties index 95ee139..ee84478 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sat, 18 Nov 2017 16:01:27 +0100 +#Sun, 19 Nov 2017 14:47:09 +0100 annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processors.list= diff --git a/src/sesim/AutoTraderInterface.java b/src/sesim/AutoTraderInterface.java index 1200f6d..a1bf2ce 100644 --- a/src/sesim/AutoTraderInterface.java +++ b/src/sesim/AutoTraderInterface.java @@ -30,9 +30,10 @@ import org.json.JSONObject; /** * Interface for auto traders + * * @author 7u83 <7u83@mail.ru> */ -public interface AutoTraderInterface { +public interface AutoTraderInterface extends ConfigurableInterface { public abstract boolean getDevelStatus(); @@ -40,39 +41,30 @@ public interface AutoTraderInterface { /** * Get a graphical user interface to configure the auto trader. - * @return an AutoTraderGui object or null if there is no graphical - * user interface available. + * + * @return an AutoTraderGui object or null if there is no graphical user + * interface available. */ public abstract AutoTraderGui getGui(); public abstract JDialog getGuiConsole(); - /** - * Get current configuration of the auto trader as JSON object. - * @return JSONObject containing the configuration - */ - public abstract JSONObject getConfig(); - - /** - * Set the configuration for auto trader by a JSON object. - * @param cfg the configuration - */ - public abstract void putConfig(JSONObject cfg); - /** * Return the name of the auto trader. + * * @return name */ public abstract String getName(); /** * Initialize the auto trader + * * @param se Exechange to trade on - * @param id + * @param id * @param name Name of auto trader - * @param money Money + * @param money Money * @param shares Number of shares - * @param cfg + * @param cfg */ public void init(Exchange se, long id, String name, double money, double shares, JSONObject cfg); diff --git a/src/sesim/ConfigurableInterface.java b/src/sesim/ConfigurableInterface.java new file mode 100644 index 0000000..5cf8a19 --- /dev/null +++ b/src/sesim/ConfigurableInterface.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2017, tube + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package sesim; + +import org.json.JSONObject; + +/** + * + * @author tube + */ +public interface ConfigurableInterface { + + /** + * Get current configuration as JSON object. + * + * @return JSONObject containing the configuration + */ + public abstract JSONObject getConfig(); + + /** + * Set the configuration by a JSON object. + * + * @param cfg the configuration + */ + public abstract void putConfig(JSONObject cfg); + +}