From 08dc2b6ba3a3b1a5a663610d5e28d5d763fd8471 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sun, 19 Nov 2017 17:19:29 +0100 Subject: [PATCH] Indicators --- nbproject/project.properties | 2 +- src/indicators/BaseIndicator.java | 45 +++++++++++++++++++++++++ src/indicators/RSIIndicator.java | 3 +- src/indicators/SMAIndicator.java | 3 +- src/sesim/AutoTraderInterface.java | 28 ++++++---------- src/sesim/ConfigurableInterface.java | 50 ++++++++++++++++++++++++++++ src/sesim/Indicator.java | 3 +- 7 files changed, 110 insertions(+), 24 deletions(-) create mode 100644 src/indicators/BaseIndicator.java create mode 100644 src/sesim/ConfigurableInterface.java diff --git a/nbproject/project.properties b/nbproject/project.properties index 23a8544..ee84478 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,4 +1,4 @@ -#Sun, 19 Nov 2017 17:04:32 +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/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 ""; + } +} 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 2a4731f..6dba64c 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; 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); + +} 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(); }