Added some stuff.
This commit is contained in:
parent
78433352bc
commit
0a1a44e06a
@ -55,7 +55,7 @@ public class Chart extends javax.swing.JPanel implements QuoteReceiver, Scrollab
|
||||
// int item_width = 10;
|
||||
//int items = 350;
|
||||
//long ntime = 0;
|
||||
OHLCData data = new OHLCData(60000);
|
||||
OHLCData data = new OHLCData(6000);
|
||||
|
||||
OHLCDataItem current = null;
|
||||
|
||||
|
@ -53,9 +53,9 @@
|
||||
<Data value="1"/>
|
||||
<Data value="1"/>
|
||||
</Column>
|
||||
<Column editable="true" title="Strategy" type="java.lang.String">
|
||||
<Data value="Random"/>
|
||||
<Data value="Random"/>
|
||||
<Column editable="true" title="Strategy" type="java.lang.Object">
|
||||
<Data value=""/>
|
||||
<Data value="null"/>
|
||||
</Column>
|
||||
<Column editable="true" title="Money" type="java.lang.Double">
|
||||
<Data value="10000.0"/>
|
||||
|
@ -25,13 +25,19 @@
|
||||
*/
|
||||
package gui;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javax.swing.DefaultCellEditor;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import javax.swing.table.JTableHeader;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import sesim.AutoTraderConfig;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -78,8 +84,36 @@ public class EditAutoTraderList extends javax.swing.JPanel {
|
||||
public EditAutoTraderList() {
|
||||
initComponents();
|
||||
|
||||
JComboBox comboBox = new JComboBox();
|
||||
|
||||
ArrayList <Class <AutoTraderConfig>> trconfigs=null;
|
||||
trconfigs = Globals.tloader.getTraders();
|
||||
|
||||
for (int i=0; i<trconfigs.size(); i++){
|
||||
try {
|
||||
AutoTraderConfig ac = trconfigs.get(i).newInstance();
|
||||
System.out.printf("TrConfig: %s\n", ac.getName());
|
||||
comboBox.addItem(ac.getName());
|
||||
} catch (InstantiationException ex) {
|
||||
Logger.getLogger(EditAutoTraderList.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (IllegalAccessException ex) {
|
||||
Logger.getLogger(EditAutoTraderList.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// comboBox.addItem("AAA");
|
||||
// comboBox.addItem("BBB");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DefaultTableModel model = (DefaultTableModel) list.getModel();
|
||||
list.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(comboBox));
|
||||
model.setRowCount(3);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -96,15 +130,15 @@ public class EditAutoTraderList extends javax.swing.JPanel {
|
||||
|
||||
list.setModel(new javax.swing.table.DefaultTableModel(
|
||||
new Object [][] {
|
||||
{"Alice", new Integer(1), "Random", new Double(10000.0), new Double(100.0), new Boolean(true)},
|
||||
{"Bob", new Integer(1), "Random", new Double(1000.0), new Double(100.0), new Boolean(true)}
|
||||
{"Alice", new Integer(1), "", new Double(10000.0), new Double(100.0), new Boolean(true)},
|
||||
{"Bob", new Integer(1), null, new Double(1000.0), new Double(100.0), new Boolean(true)}
|
||||
},
|
||||
new String [] {
|
||||
"Name", "Count", "Strategy", "Money", "Shares", "Enabled"
|
||||
}
|
||||
) {
|
||||
Class[] types = new Class [] {
|
||||
java.lang.String.class, java.lang.Integer.class, java.lang.String.class, java.lang.Double.class, java.lang.Double.class, java.lang.Boolean.class
|
||||
java.lang.String.class, java.lang.Integer.class, java.lang.Object.class, java.lang.Double.class, java.lang.Double.class, java.lang.Boolean.class
|
||||
};
|
||||
|
||||
public Class getColumnClass(int columnIndex) {
|
||||
|
106
src/main/java/gui/EditTradingStrategies.form
Normal file
106
src/main/java/gui/EditTradingStrategies.form
Normal file
@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
|
||||
<Properties>
|
||||
<Property name="defaultCloseOperation" type="int" value="2"/>
|
||||
</Properties>
|
||||
<SyntheticProperties>
|
||||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
|
||||
</SyntheticProperties>
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace min="-2" pref="99" max="-2" attributes="0"/>
|
||||
<Component id="jComboBox1" pref="411" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jPanel1" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||
<Component id="jButton1" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jComboBox1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jPanel1" max="32767" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jButton1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JComboBox" name="jComboBox1">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="4">
|
||||
<StringItem index="0" value="Item 1"/>
|
||||
<StringItem index="1" value="Item 2"/>
|
||||
<StringItem index="2" value="Item 3"/>
|
||||
<StringItem index="3" value="Item 4"/>
|
||||
</StringArray>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jComboBox1ActionPerformed"/>
|
||||
</Events>
|
||||
<AuxValues>
|
||||
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/>
|
||||
</AuxValues>
|
||||
</Component>
|
||||
<Container class="javax.swing.JPanel" name="jPanel1">
|
||||
<Properties>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.BevelBorderInfo">
|
||||
<BevelBorder/>
|
||||
</Border>
|
||||
</Property>
|
||||
</Properties>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<EmptySpace min="0" pref="270" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
</Container>
|
||||
<Component class="javax.swing.JButton" name="jButton1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="jButton1"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
180
src/main/java/gui/EditTradingStrategies.java
Normal file
180
src/main/java/gui/EditTradingStrategies.java
Normal file
@ -0,0 +1,180 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 7u83 <7u83@mail.ru>
|
||||
* 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 gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import sesim.AutoTraderConfig;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 7u83 <7u83@mail.ru>
|
||||
*/
|
||||
public class EditTradingStrategies extends javax.swing.JDialog {
|
||||
|
||||
/**
|
||||
* Creates new form EditTradingStrategies
|
||||
*/
|
||||
public EditTradingStrategies(java.awt.Frame parent, boolean modal) {
|
||||
super(parent, modal);
|
||||
initComponents();
|
||||
|
||||
this.jComboBox1.removeAllItems();
|
||||
ArrayList <String> sn = Globals.tloader.getDefaultStrategyNames();
|
||||
for(int i=0; i<sn.size(); i++){
|
||||
this.jComboBox1.addItem(sn.get(i));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void setStrategy(String strategy){
|
||||
ArrayList <Class<AutoTraderConfig>> s = Globals.tloader.getTraders();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
jComboBox1 = new javax.swing.JComboBox<>();
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
jButton1 = new javax.swing.JButton();
|
||||
|
||||
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
|
||||
|
||||
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
|
||||
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
jComboBox1ActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
|
||||
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
jPanel1Layout.setHorizontalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 0, Short.MAX_VALUE)
|
||||
);
|
||||
jPanel1Layout.setVerticalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 270, Short.MAX_VALUE)
|
||||
);
|
||||
|
||||
jButton1.setText("jButton1");
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
|
||||
getContentPane().setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(99, 99, 99)
|
||||
.addComponent(jComboBox1, 0, 411, Short.MAX_VALUE))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addGap(0, 0, Short.MAX_VALUE)
|
||||
.addComponent(jButton1)))
|
||||
.addContainerGap())
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jButton1)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
|
||||
System.out.printf("Now Strategie Dialog to open\n");
|
||||
}//GEN-LAST:event_jComboBox1ActionPerformed
|
||||
|
||||
/**
|
||||
* @param args the command line arguments
|
||||
*/
|
||||
public static void main(String args[]) {
|
||||
/* Set the Nimbus look and feel */
|
||||
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
|
||||
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
|
||||
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
|
||||
*/
|
||||
try {
|
||||
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
|
||||
if ("Nimbus".equals(info.getName())) {
|
||||
javax.swing.UIManager.setLookAndFeel(info.getClassName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (ClassNotFoundException ex) {
|
||||
java.util.logging.Logger.getLogger(EditTradingStrategies.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
|
||||
} catch (InstantiationException ex) {
|
||||
java.util.logging.Logger.getLogger(EditTradingStrategies.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
|
||||
} catch (IllegalAccessException ex) {
|
||||
java.util.logging.Logger.getLogger(EditTradingStrategies.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
|
||||
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
|
||||
java.util.logging.Logger.getLogger(EditTradingStrategies.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
|
||||
}
|
||||
//</editor-fold>
|
||||
|
||||
/* Create and display the dialog */
|
||||
java.awt.EventQueue.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
EditTradingStrategies dialog = new EditTradingStrategies(new javax.swing.JFrame(), true);
|
||||
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(java.awt.event.WindowEvent e) {
|
||||
System.exit(0);
|
||||
}
|
||||
});
|
||||
dialog.setVisible(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton jButton1;
|
||||
private javax.swing.JComboBox<String> jComboBox1;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
@ -28,35 +28,34 @@ package gui;
|
||||
import chart.NewMDIApplication;
|
||||
import java.util.prefs.Preferences;
|
||||
import javax.swing.UIManager;
|
||||
import sesim.AutoTraderLoader;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 7u83 <7u83@mail.ru>
|
||||
*/
|
||||
public class Globals {
|
||||
|
||||
|
||||
static public sesim.Exchange se;
|
||||
|
||||
|
||||
static public Preferences prefs;
|
||||
|
||||
static void setLookAndFeel(String selected){
|
||||
|
||||
|
||||
static void setLookAndFeel(String selected) {
|
||||
|
||||
try {
|
||||
String look = "com.seaglasslookandfeel.SeaGlassLookAndFeel";
|
||||
Class.forName(look);
|
||||
UIManager.installLookAndFeel("Sea Glass", look);
|
||||
}catch (ClassNotFoundException e) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
String look = "com.seaglasslookandfeel.SeaGlassLookAndFeel";
|
||||
Class.forName(look);
|
||||
UIManager.installLookAndFeel("Sea Glass", look);
|
||||
} catch (ClassNotFoundException e) {
|
||||
}
|
||||
|
||||
UIManager.LookAndFeelInfo[] lafInfo = UIManager.getInstalledLookAndFeels();
|
||||
for (UIManager.LookAndFeelInfo lafInfo1 : lafInfo) {
|
||||
for (UIManager.LookAndFeelInfo lafInfo1 : lafInfo) {
|
||||
if (lafInfo1.getName().equals(selected)) {
|
||||
String lafClassName = lafInfo1.getClassName();
|
||||
try {
|
||||
UIManager.setLookAndFeel(lafClassName);
|
||||
// UIManager.setLookAndFeel("com.seaglasslookandfeel.SeaGlassLookAndFeel");
|
||||
// UIManager.setLookAndFeel("com.seaglasslookandfeel.SeaGlassLookAndFeel");
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -65,7 +64,8 @@ public class Globals {
|
||||
}
|
||||
}
|
||||
|
||||
static AutoTraderLoader tloader=new AutoTraderLoader();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -69,9 +69,12 @@
|
||||
</MenuItem>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="pasteMenuItem">
|
||||
<Properties>
|
||||
<Property name="mnemonic" type="int" value="112"/>
|
||||
<Property name="text" type="java.lang.String" value="Paste"/>
|
||||
<Property name="mnemonic" type="int" value="115"/>
|
||||
<Property name="text" type="java.lang.String" value="Strategies ..."/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="pasteMenuItemActionPerformed"/>
|
||||
</Events>
|
||||
</MenuItem>
|
||||
<MenuItem class="javax.swing.JMenuItem" name="deleteMenuItem">
|
||||
<Properties>
|
||||
|
@ -198,8 +198,13 @@ public class NewMDIApplication extends javax.swing.JFrame {
|
||||
copyMenuItem.setText("Copy");
|
||||
editMenu.add(copyMenuItem);
|
||||
|
||||
pasteMenuItem.setMnemonic('p');
|
||||
pasteMenuItem.setText("Paste");
|
||||
pasteMenuItem.setMnemonic('s');
|
||||
pasteMenuItem.setText("Strategies ...");
|
||||
pasteMenuItem.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
pasteMenuItemActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
editMenu.add(pasteMenuItem);
|
||||
|
||||
deleteMenuItem.setMnemonic('d');
|
||||
@ -320,6 +325,12 @@ public class NewMDIApplication extends javax.swing.JFrame {
|
||||
|
||||
}//GEN-LAST:event_deleteMenuItemActionPerformed
|
||||
|
||||
private void pasteMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pasteMenuItemActionPerformed
|
||||
EditTradingStrategies s = new EditTradingStrategies(this,true);
|
||||
s.setVisible(rootPaneCheckingEnabled);
|
||||
|
||||
}//GEN-LAST:event_pasteMenuItemActionPerformed
|
||||
|
||||
/**
|
||||
* @param args the command line arguments
|
||||
* @throws java.lang.IllegalAccessException
|
||||
@ -349,9 +360,9 @@ public class NewMDIApplication extends javax.swing.JFrame {
|
||||
ArrayList<Class<AutoTraderConfig>> traders;
|
||||
traders = null;
|
||||
|
||||
sesim.TraderLoader tl = new sesim.TraderLoader();
|
||||
sesim.AutoTraderLoader tl = new sesim.AutoTraderLoader();
|
||||
try {
|
||||
traders = tl.get();
|
||||
traders = tl.getTraders();
|
||||
} catch (Exception e) {
|
||||
System.out.print("Execption\n");
|
||||
}
|
||||
|
@ -25,6 +25,8 @@
|
||||
*/
|
||||
package sesim;
|
||||
|
||||
import javax.swing.JPanel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 7u83
|
||||
@ -32,5 +34,6 @@ package sesim;
|
||||
public abstract interface AutoTraderConfig {
|
||||
public abstract AutoTrader createTrader(Exchange se, double money, double shares);
|
||||
public abstract String getName();
|
||||
public abstract JPanel getConfigEditor();
|
||||
|
||||
}
|
||||
|
@ -46,21 +46,26 @@ import java.util.logging.Logger;
|
||||
*
|
||||
* @author 7u83 <7u83@mail.ru>
|
||||
*/
|
||||
public class TraderLoader {
|
||||
public class AutoTraderLoader {
|
||||
|
||||
public void pf(String file) {
|
||||
System.out.printf("File\n", file);
|
||||
}
|
||||
|
||||
Class <AutoTraderConfig> loadClass(String filename, String classname) throws MalformedURLException {
|
||||
Class<AutoTraderConfig> loadClass(String filename, String classname) {
|
||||
|
||||
String clnam = classname.substring(1, classname.length() - 6).replace('/', '.');
|
||||
// System.out.printf("Load class name: %s\n", clnam);
|
||||
// System.out.printf("Load class name: %s\n", clnam);
|
||||
|
||||
// Class<?> cls = ClassLoader.loadClass(className);
|
||||
File f = new File(filename);
|
||||
|
||||
URL url = f.toURL(); // file:/c:/myclasses/
|
||||
URL url = null;
|
||||
try {
|
||||
url = f.toURL(); // file:/c:/myclasses/
|
||||
} catch (MalformedURLException ex) {
|
||||
Logger.getLogger(AutoTraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
|
||||
URL[] urls = new URL[]{url};
|
||||
|
||||
@ -69,12 +74,11 @@ public class TraderLoader {
|
||||
|
||||
try {
|
||||
Class<?> cls = cl.loadClass(clnam);
|
||||
|
||||
|
||||
String kanone = cls.getCanonicalName();
|
||||
// System.out.printf("%s --------------------------------------\n",kanone);
|
||||
|
||||
|
||||
/* for (Class<?> i : cls.getClasses()){
|
||||
|
||||
/* for (Class<?> i : cls.getClasses()){
|
||||
|
||||
|
||||
String iname = i.getCanonicalName();
|
||||
@ -85,45 +89,36 @@ public class TraderLoader {
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
for(Class<?> i : cls.getInterfaces()) {
|
||||
|
||||
|
||||
|
||||
|
||||
if(i.equals(AutoTraderConfig.class)) {
|
||||
System.out.printf("Loading class %s\n", clnam);
|
||||
|
||||
try {
|
||||
String cname = i.getCanonicalName();
|
||||
System.out.printf("CAnonical name: %s\n", cname);
|
||||
|
||||
|
||||
|
||||
|
||||
} catch (Exception ex) {
|
||||
System.out.printf("Ex: %s\n", ex.getClass().getName());
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return (Class <AutoTraderConfig>)cls;
|
||||
//System.out.printf("Have found an Auto Trader %s\n", clnam);
|
||||
//break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
for (Class<?> i : cls.getInterfaces()) {
|
||||
|
||||
if (i.equals(AutoTraderConfig.class)) {
|
||||
System.out.printf("Loading class %s\n", clnam);
|
||||
|
||||
try {
|
||||
String cname = i.getCanonicalName();
|
||||
System.out.printf("CAnonical name: %s\n", cname);
|
||||
|
||||
} catch (Exception ex) {
|
||||
System.out.printf("Ex: %s\n", ex.getClass().getName());
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return (Class<AutoTraderConfig>) cls;
|
||||
//System.out.printf("Have found an Auto Trader %s\n", clnam);
|
||||
//break;
|
||||
}
|
||||
}
|
||||
|
||||
} catch (ClassNotFoundException ex) {
|
||||
System.out.printf("Cant load class %s\n", clnam);
|
||||
|
||||
|
||||
//Logger.getLogger(TraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
|
||||
//Logger.getLogger(AutoTraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public ArrayList <Class <AutoTraderConfig>> get() throws IOException {
|
||||
public ArrayList<Class<AutoTraderConfig>> getTraders() {
|
||||
|
||||
int curlen = 0;
|
||||
|
||||
@ -135,29 +130,21 @@ public class TraderLoader {
|
||||
System.out.printf("Have it %s %d %s\n", fn,curlen,fn.substring(curlen));
|
||||
};
|
||||
*/
|
||||
|
||||
ArrayList <Class <AutoTraderConfig>> traders;
|
||||
traders = new ArrayList <> ();
|
||||
|
||||
ArrayList<Class<AutoTraderConfig>> traders;
|
||||
traders = new ArrayList<>();
|
||||
|
||||
for (String classpathEntry : System.getProperty("java.class.path").split(System.getProperty("path.separator"))) {
|
||||
|
||||
|
||||
|
||||
Consumer<? super Path> pf = new Consumer() {
|
||||
@Override
|
||||
public void accept(Object t) {
|
||||
String fn = ((Path) t).toString();
|
||||
if (fn.toLowerCase().endsWith(".class")) {
|
||||
try {
|
||||
//System.out.printf("Halloe: %s %s\n", fn, fn.substring(classpathEntry.length()));
|
||||
Class <AutoTraderConfig> cls = loadClass(fn, fn.substring(classpathEntry.length()));
|
||||
if (cls==null)
|
||||
return;
|
||||
traders.add(cls);
|
||||
|
||||
} catch (MalformedURLException ex) {
|
||||
Logger.getLogger(TraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
Class<AutoTraderConfig> cls = loadClass(fn, fn.substring(classpathEntry.length()));
|
||||
if (cls == null) {
|
||||
return;
|
||||
}
|
||||
traders.add(cls);
|
||||
}
|
||||
if (fn.toLowerCase().endsWith(".jar")) {
|
||||
JarInputStream is = null;
|
||||
@ -173,12 +160,12 @@ public class TraderLoader {
|
||||
}
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(TraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
Logger.getLogger(AutoTraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} finally {
|
||||
try {
|
||||
is.close();
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(TraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
Logger.getLogger(AutoTraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -187,16 +174,40 @@ public class TraderLoader {
|
||||
|
||||
};
|
||||
|
||||
Files.walk(Paths.get(classpathEntry))
|
||||
.filter(Files::isRegularFile)
|
||||
.forEach(pf);
|
||||
|
||||
try {
|
||||
Files.walk(Paths.get(classpathEntry))
|
||||
.filter(Files::isRegularFile)
|
||||
.forEach(pf);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(AutoTraderLoader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return traders;
|
||||
|
||||
}
|
||||
|
||||
public ArrayList<String> getDefaultStrategyNames() {
|
||||
ArrayList<Class<AutoTraderConfig>> trclasses;
|
||||
trclasses = this.getTraders();
|
||||
ArrayList<String> ret = new ArrayList<>();
|
||||
trclasses = getTraders();
|
||||
|
||||
for (int i = 0; i < trclasses.size(); i++) {
|
||||
try {
|
||||
AutoTraderConfig ac = trclasses.get(i).newInstance();
|
||||
ret.add(ac.getName());
|
||||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ArrayList getTraders(String dir) {
|
||||
File f = new File(dir);
|
||||
File[] ff = f.listFiles();
|
@ -3,6 +3,8 @@ package sesim;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
|
||||
/**
|
||||
@ -59,6 +61,20 @@ public class Exchange { //extends Thread {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void createTraders(JSONArray traderdefs){
|
||||
for (int i=0; i<traderdefs.length(); i++){
|
||||
JSONObject o = traderdefs.getJSONObject(i);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// this.traders.add(randt);
|
||||
// randt.setName("Bob");
|
||||
// randt.start();
|
||||
}
|
||||
|
||||
// private final ConcurrentHashMap<Double, Account> accounts = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashMap<Double, Account> accounts = new ConcurrentHashMap<>();
|
||||
|
@ -46,7 +46,7 @@ public class RandomTrader extends AutoTrader {
|
||||
|
||||
sesim.Exchange.Account a = se.getAccount(account_id);
|
||||
long rc = this.doTrade();
|
||||
return rc ;
|
||||
return rc/80 ;
|
||||
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ public class RandomTrader extends AutoTrader {
|
||||
public long timerTask() {
|
||||
sesim.Exchange.Account a = se.getAccount(account_id);
|
||||
long rc = this.doTrade();
|
||||
return rc / 80;
|
||||
return rc / 100;
|
||||
|
||||
// return this.event();
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
*/
|
||||
package traders;
|
||||
|
||||
import javax.swing.JPanel;
|
||||
import sesim.AutoTrader;
|
||||
import sesim.AutoTraderConfig;
|
||||
import sesim.Exchange;
|
||||
@ -37,12 +38,12 @@ public class RandomTraderConfig implements AutoTraderConfig {
|
||||
|
||||
public float[] sell_volume = {100, 100};
|
||||
public float[] sell_limit = {-5f, 5f};
|
||||
public int[] sell_order_wait = {40000, 150000};
|
||||
public int[] sell_order_wait = {10000, 50000};
|
||||
public int[] wait_after_sell = {10, 30};
|
||||
|
||||
public float[] buy_volume = {100, 100};
|
||||
public float[] buy_limit = {-5f, 5f};
|
||||
public int[] buy_order_wait = {40000, 150000};
|
||||
public int[] buy_order_wait = {10000, 50000};
|
||||
public int[] wait_after_buy = {10, 30};
|
||||
|
||||
@Override
|
||||
@ -54,4 +55,9 @@ public class RandomTraderConfig implements AutoTraderConfig {
|
||||
public String getName() {
|
||||
return "RandomA";
|
||||
}
|
||||
|
||||
@Override
|
||||
public JPanel getConfigEditor() {
|
||||
return new RandomTraderConfigForm();
|
||||
}
|
||||
}
|
||||
|
75
src/main/java/traders/RandomTraderConfigForm.form
Normal file
75
src/main/java/traders/RandomTraderConfigForm.form
Normal file
@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<EmptySpace max="32767" attributes="0"/>
|
||||
<Component id="jTextField1" min="-2" pref="197" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace min="-2" pref="83" max="-2" attributes="0"/>
|
||||
<Component id="jRadioButton1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="37" max="-2" attributes="0"/>
|
||||
<Component id="jComboBox1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace pref="98" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jTextField1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="40" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="jRadioButton1" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="jComboBox1" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace pref="202" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JTextField" name="jTextField1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="jTextField1"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JRadioButton" name="jRadioButton1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="jRadioButton1"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="jComboBox1">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="4">
|
||||
<StringItem index="0" value="Item 1"/>
|
||||
<StringItem index="1" value="Item 2"/>
|
||||
<StringItem index="2" value="Item 3"/>
|
||||
<StringItem index="3" value="Item 4"/>
|
||||
</StringArray>
|
||||
</Property>
|
||||
</Properties>
|
||||
<AuxValues>
|
||||
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/>
|
||||
</AuxValues>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
94
src/main/java/traders/RandomTraderConfigForm.java
Normal file
94
src/main/java/traders/RandomTraderConfigForm.java
Normal file
@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 7u83 <7u83@mail.ru>
|
||||
* 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 traders;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 7u83 <7u83@mail.ru>
|
||||
*/
|
||||
public class RandomTraderConfigForm extends javax.swing.JPanel {
|
||||
|
||||
/**
|
||||
* Creates new form RandomTraderConfigForm
|
||||
*/
|
||||
public RandomTraderConfigForm() {
|
||||
initComponents();
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
jTextField1 = new javax.swing.JTextField();
|
||||
jRadioButton1 = new javax.swing.JRadioButton();
|
||||
jComboBox1 = new javax.swing.JComboBox<>();
|
||||
|
||||
jTextField1.setText("jTextField1");
|
||||
|
||||
jRadioButton1.setText("jRadioButton1");
|
||||
|
||||
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap())
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(83, 83, 83)
|
||||
.addComponent(jRadioButton1)
|
||||
.addGap(37, 37, 37)
|
||||
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addContainerGap(98, Short.MAX_VALUE))
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(40, 40, 40)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jRadioButton1)
|
||||
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addContainerGap(202, Short.MAX_VALUE))
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JComboBox<String> jComboBox1;
|
||||
private javax.swing.JRadioButton jRadioButton1;
|
||||
private javax.swing.JTextField jTextField1;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
@ -25,6 +25,7 @@
|
||||
*/
|
||||
package traders;
|
||||
|
||||
import javax.swing.JPanel;
|
||||
import sesim.AutoTrader;
|
||||
import sesim.AutoTraderConfig;
|
||||
import sesim.Exchange;
|
||||
@ -49,5 +50,10 @@ public class SuperTraderConfig implements AutoTraderConfig{
|
||||
public SuperTraderConfig(){
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public JPanel getConfigEditor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -93,10 +93,10 @@ static public String getFullClassName(String classFileName) throws IOException {
|
||||
* @param args the command line arguments
|
||||
*/
|
||||
public static void main(String[] args) throws InterruptedException, MalformedURLException, InstantiationException, IllegalAccessException, IOException {
|
||||
TraderLoader tl = new TraderLoader();
|
||||
AutoTraderLoader tl = new AutoTraderLoader();
|
||||
|
||||
|
||||
tl.get();
|
||||
tl.getTraders();
|
||||
System.exit(0);
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user