@Configurable("通貨ペア1") public Instrument instrument = Instrument.EURUSD; @Configurable(value ="通貨ペア2", description = "an obligatory instrument", obligatory = true) public Instrument instrument2; @Configurable(value = "時間軸", readOnly = true, description = "読み取り専用(変更出来ません)") public Period selectedPeriod = Period.ONE_MIN; @Configurable(value = "ロット" , stepSize = 0.9, description = "カスタムステップサイズで変更") public double amount = 0.02;
パラメータタイプ | Javaでの型 | 表示 | リモートモードでの違い |
数値 | int, double, short, long, Integer, Double, Short, Long | ステップサイズで変更可能な 数値フィールド |
- |
ブーリアン | boolean, Boolean | チェックボックス | - |
文字列 | String | テキストフィールド | - |
ファイル | java.util.File | パスとファイル参照可能な テキストフィールド |
- |
日時 | java.util.Calendar, java.util.Date, long , Long(Configurable.datetimeAsLong = true) |
日付ピッカー | - |
色 | java.util.Color | カラーピッカー | - |
定数 | enum, Enum, class (self-typed public static final fieldsを含んだクラス) |
コンボボックス(単一選択) | Configurable.options経由の ユーザー定義定数 |
定数コレクション | java.util.Collection (enum, Enum, class (self-typed public static final fieldsを含んだクラス)) |
コンボボックス(複数選択) | ユーザー定義定数は 許可されていません |
フィード | IFeedDescriptor(com.dukascopy.api.feed.utilインポート) | データフィード選択ダイアログ | - |
@Configurable(value = "int パラメータ", stepSize = 3) public int intParam = 1; @Configurable(value = "double パラメータ", stepSize = 0.5) public double doubleParam = 0.5; @Configurable("bool パラメータ") public boolean boolParam = true; @Configurable("テキスト パラメータ") public String textParam = "some text"; @Configurable("") public File file = new File("."); @Configurable(value="現在日時", description="default is current time") public Calendar currentTime = Calendar.getInstance(); @Configurable("") public Color color = new Color(100, 100, 100); @Configurable("通貨ペア(enum)") public Instrument instrument = Instrument.EURUSD; @Configurable("") public Set<Instrument> instruments = new HashSet<Instrument>( Arrays.asList(new Instrument[] {Instrument.EURUSD, Instrument.AUDCAD}) ); @Configurable("") public IFeedDescriptor renkoFeedDescriptor = new RenkoFeedDescriptor(Instrument.EURUSD, PriceRange.TWO_PIPS, OfferSide.ASK);
private static Calendar myCalendar; static { myCalendar = Calendar.getInstance(); myCalendar.set(2012, Calendar.JULY, 17, 14, 30, 00); } @Configurable(value="指定日時", description="17th july 14:30") public Calendar particularTime = myCalendar; private static Calendar calTodayAt5am; static { calTodayAt5am = Calendar.getInstance(); calTodayAt5am.set(Calendar.HOUR_OF_DAY, 5); calTodayAt5am.set(Calendar.MINUTE, 0); calTodayAt5am.set(Calendar.SECOND, 0); } @Configurable(value="msec単位の日時", description="default is today at 5am", datetimeAsLong=true) public long timeInMillis = calTodayAt5am.getTimeInMillis();
enum Mode { BUY, SELL, NONE } @Configurable("モード (enum param)") public Mode mode = Mode.BUY;
static class Person { public static final Person FOO = new Person("foo"); public static final Person BAR = new Person("bar"); public final String name; public Person(String name){ this.name = name; } @Override public String toString(){ return name; } } @Configurable("") public Person person; @Configurable("") public List<Person> persons;
private static final String BULLISH = "BULLISH"; private static final String BEARISH = "BEARISH"; enum Mode{ BULLISH(ConfigOptionsEnum.BULLISH), BEARISH(ConfigOptionsEnum.BEARISH); private final String name; private Mode(String name){ this.name = name; } private static Mode fromString(String name){ for(Mode mode : Mode.values()){ if(mode.name.equals(name)){ return mode; } } return null; } } @Configurable(value = "mode1", options = { BULLISH, BEARISH}) public String mode1 = BULLISH; @Override public void onStart(IContext context) throws JFException { Mode mode = Mode.fromString(mode1); context.getConsole().getOut().println("chosen mode: " + mode); }