unageanu-jiji 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. data/ChangeLog +3 -0
  2. data/bin/jiji +1 -1
  3. data/html/swf/chart.swf +0 -0
  4. data/lib/jiji/agent/agent.rb +0 -1
  5. data/lib/jiji/agent/agent_manager.rb +0 -1
  6. data/lib/jiji/collector.rb +14 -17
  7. data/lib/jiji/command.rb +40 -12
  8. data/lib/jiji/configuration.rb +8 -2
  9. data/lib/jiji/dao/trade_result_dao.rb +1 -1
  10. data/lib/jiji/migration/migrator1_1_0.rb +46 -0
  11. data/lib/jiji/models.rb +1 -5
  12. data/lib/jiji/operator.rb +12 -30
  13. data/lib/jiji/plugin/embedded/click_securities_demo_plugin.rb +140 -0
  14. data/lib/jiji/plugin/embedded/single_click_client.rb +107 -0
  15. data/lib/jiji/plugin/plugin_loader.rb +53 -0
  16. data/lib/jiji/plugin/securities_plugin.rb +135 -0
  17. data/lib/jiji/registry.rb +24 -19
  18. data/lib/jiji/server.rb +3 -1
  19. data/lib/jiji/service/rate_service.rb +7 -2
  20. data/lib/jiji/util/block_to_session.rb +4 -4
  21. data/lib/jiji/util/util.rb +0 -67
  22. data/lib/jiji_plugin.rb +6 -0
  23. data/swf/build.xml +1 -1
  24. data/swf/chart/fx/chart/Chart.as +6 -4
  25. data/swf/chart/fx/chart/ctrl/Controller.as +12 -0
  26. data/swf/chart/fx/chart/model/Model.as +3 -1
  27. data/swf/chart/fx/chart/ui/RangeInfoWindow.as +1 -1
  28. data/swf/chart/fx/chart/ui/ScaleSelector.as +6 -17
  29. data/test/OutputregistryTest/conf/configuration.yaml +3 -0
  30. data/test/ProcessManagerTest/conf/configuration.yaml +4 -17
  31. data/test/{test_AgentManager.rb → agent/test_AgentManager.rb} +37 -39
  32. data/test/{test_AgentRegistry.rb → agent/test_AgentRegistry.rb} +3 -2
  33. data/test/{test_PeriodicallyAgent.rb → agent/test_PeriodicallyAgent.rb} +7 -6
  34. data/test/{test_Permitter.rb → agent/test_Permitter.rb} +10 -9
  35. data/test/all_tests.rb +31 -24
  36. data/test/{test_RateDao.rb → dao/test_RateDao.rb} +5 -5
  37. data/test/{test_TradeResultDao.rb → dao/test_TradeResultDao.rb} +12 -11
  38. data/test/jiji_plugin.rb +7 -0
  39. data/test/migration/migrator1_1_0test_data/configuration.yaml +11 -0
  40. data/test/migration/test_Migrator1_1_0.rb +56 -0
  41. data/test/{test_SingleClickClient.rb → plugin/embedded/test_SingleClickClient.rb} +44 -14
  42. data/test/plugin/error_test/jiji_plugin.rb +2 -0
  43. data/test/plugin/test/foo_plugin.rb +1 -0
  44. data/test/plugin/test/jiji_plugin.rb +2 -0
  45. data/test/plugin/test_Loader.rb +33 -0
  46. data/test/plugin/test_gem/a/jiji_plugin_test_gem_a-1.0.0.gem +0 -0
  47. data/test/plugin/test_gem/a/jiji_plugin_test_gem_a.gemspec +10 -0
  48. data/test/plugin/test_gem/a/lib/jiji_plugin.rb +2 -0
  49. data/test/plugin/test_gem/a/lib/jiji_plugin_test.rb +6 -0
  50. data/test/plugin/test_gem/b/jiji_plugin_test_gem_b-1.0.0.gem +0 -0
  51. data/test/plugin/test_gem/b/jiji_plugin_test_gem_b.gemspec +9 -0
  52. data/test/plugin/test_gem/b/lib/jiji_plugin.rb +2 -0
  53. data/test/test_BackTestCollector.rb +12 -20
  54. data/test/test_Collector.rb +16 -32
  55. data/test/test_Configuration.rb +3 -3
  56. data/test/test_Operator.rb +9 -9
  57. data/test/test_Output.rb +2 -3
  58. data/test/test_Output_registry.rb +9 -9
  59. data/test/test_Process.rb +6 -6
  60. data/test/test_ProcessManager.rb +11 -9
  61. data/test/test_utils.rb +49 -0
  62. data/test/{test_BlockToSession.rb → util/test_BlockToSession.rb} +57 -9
  63. data/test/{test_CSV.rb → util/test_CSV.rb} +5 -5
  64. data/test/{test_SynchronizeInterceptor.rb → util/test_SynchronizeInterceptor.rb} +5 -3
  65. metadata +59 -26
  66. data/lib/jiji/single_click_client.rb +0 -95
  67. data/test/test_configuration.yaml +0 -16
  68. data/test/testutils.rb +0 -37
@@ -0,0 +1,135 @@
1
+
2
+ require 'thread'
3
+
4
+ module JIJI
5
+ module Plugin
6
+
7
+ #
8
+ #===証券会社アクセスプラグイン
9
+ #
10
+ #証券会社へのアクセスを提供するプラグインのインターフェイスを示すモジュール。
11
+ #証券会社アクセスプラグインはこのモジュールが示すメソッドを実装する必要があります。
12
+ #
13
+ module SecuritiesPlugin
14
+
15
+ #プラグイン識別子
16
+ FUTURE_NAME = :securities
17
+
18
+ #プラグインの識別子を返します。
19
+ def plugin_id
20
+ end
21
+
22
+ #プラグインの表示名を返します。
23
+ #「jiji setting」での証券会社選択時に使用します。
24
+ def display_name
25
+ end
26
+
27
+ #「jiji setting」でユーザーに入力を要求するデータの情報を返します。
28
+ #return:: JIJI::Plugin::Securities::Inputの配列
29
+ def input_infos
30
+ end
31
+
32
+ #プラグインを初期化します。プラグインの利用が開始される前に1度だけ呼び出されます。
33
+ #引数として、ユーザーが入力したパラメータが渡されます。
34
+ #プラグインの利用開始前に一度だけ呼ばれます。
35
+ #props:: ユーザーが入力したパラメータ(JIJI::Plugin::Securities::Inputのkeyをキーとする設定値の配列)
36
+ #logger:: ロガー
37
+ def init_plugin( props, logger )
38
+ end
39
+
40
+ #プラグインを破棄します。jijiの停止時に1度だけ呼び出されます。
41
+ def destroy_plugin
42
+ end
43
+
44
+ #利用可能な通貨ペア一覧を取得します。
45
+ #return:: JIJI::Plugin::Securities::Pairの配列
46
+ def list_pairs
47
+ end
48
+
49
+ #現在のレートを取得します。
50
+ #return:: 通貨ペア名をキーとするJIJI::Plugin::Securities::Rateのハッシュ
51
+ def list_rates
52
+ end
53
+
54
+ #成り行きで発注を行います。
55
+ #pair:: 通貨ペア名
56
+ #sell_or_buy:: 売(:sell)または買い(:buy)
57
+ #count:: 取引数量
58
+ #return:: JIJI::Plugin::Securities::Position
59
+ def order( pair, sell_or_buy, count )
60
+ end
61
+
62
+ #建玉を決済します。
63
+ #position_id:: 建玉ID
64
+ #count:: 取引数量
65
+ def commit( position_id, count )
66
+ end
67
+
68
+ #===ユーザーに入力を要求するデータの情報
69
+ #key:: データのキー
70
+ #description:: 入力時に表示する説明
71
+ #secure:: UIでの入力値の表示を行うかどうか。trueにするとUI上では「*」で表示されます。
72
+ #validator:: UIでの入力値のチェックを行うProc。引数として文字列を受け取り、
73
+ # エラーがあった場合はエラーメッセージ、問題ない場合はnilを返すこと。
74
+ # nilを指定すると、入力値のチェックを行わない。
75
+ Input = Struct.new( :key, :description, :secure, :validator )
76
+
77
+ #===取引可能な通貨ペア
78
+ #name:: 通貨ペア名 例) :EURJPY
79
+ #tade_unit:: 取引単位
80
+ Pair = Struct.new( :name, :trade_unit )
81
+
82
+ #===レート
83
+ #bid:: bidレート
84
+ #ask:: askレート
85
+ #sell_swap:: 売りスワップ
86
+ #buy_swap:: 買いスワップ
87
+ Rate = Struct.new( :bid, :ask, :sell_swap, :buy_swap )
88
+
89
+ #===建玉
90
+ #position_id:: 建玉の識別子
91
+ Position = Struct.new( :position_id )
92
+ end
93
+
94
+ # 証券会社アクセスプラグインのマネージャ
95
+ class SecuritiesPluginManager
96
+
97
+ def initialize
98
+ @mutex = Mutex.new
99
+ @selected = nil
100
+ end
101
+
102
+ #登録済みプラグインの一覧を返す。
103
+ #return:: 登録済みプラグインの配列
104
+ def all
105
+ JIJI::Plugin.get( JIJI::Plugin::SecuritiesPlugin::FUTURE_NAME )
106
+ end
107
+
108
+ #選択されたプラグインインスタンスを取得する。
109
+ #return:: 選択されているプラグインインスタンス
110
+ def selected
111
+ return @mutex.synchronize {
112
+ unless @selected
113
+ id = conf.get([:securities, :type], "illegal" ).to_sym
114
+ @selected = all.find {|plugin|
115
+ id == plugin.plugin_id.to_sym
116
+ }
117
+ raise FatalError.new( JIJI::ERROR_NOT_FOUND, "Securities plugin isnot found. plugin_id=#{id}" ) unless @selected
118
+ @selected.init_plugin( conf.get( [:securities], {} ), @server_logger )
119
+ end
120
+ @selected
121
+ }
122
+ end
123
+
124
+ #プラグインを破棄する。
125
+ def close
126
+ @mutex.synchronize {
127
+ @selected.destroy_plugin if @selected
128
+ }
129
+ end
130
+ attr :server_logger, true
131
+ attr :conf, true
132
+ end
133
+
134
+ end
135
+ end
data/lib/jiji/registry.rb CHANGED
@@ -15,7 +15,6 @@ require 'jiji/agent/permitter'
15
15
  require 'jiji/agent/util'
16
16
  require 'jiji/output'
17
17
  require 'jiji/operator'
18
- require 'jiji/single_click_client'
19
18
  require "jiji/dao/rate_dao"
20
19
  require "jiji/dao/trade_result_dao"
21
20
  require 'logger'
@@ -32,6 +31,10 @@ require 'jiji/service/system_service'
32
31
 
33
32
  require 'jiji/migration/migrator'
34
33
  require 'jiji/migration/migrator1_0_3'
34
+ require 'jiji/migration/migrator1_1_0'
35
+
36
+ require 'jiji/plugin/plugin_loader'
37
+ require 'jiji/plugin/securities_plugin'
35
38
 
36
39
  module JIJI
37
40
 
@@ -52,15 +55,6 @@ module JIJI
52
55
  r.register( :conf ) {
53
56
  JIJI::Configuration.new r.base_dir + "/conf/configuration.yaml"
54
57
  }
55
- # アカウント(とりあえず設定ファイルから読む)
56
- r.register( :account ) {
57
- conf = r.conf
58
- accountClass = Struct.new(:user, :password)
59
- accountClass.new(
60
- conf.get([:securities,:account,:user], ""),
61
- conf.get([:securities,:account,:password], ""))
62
- }
63
-
64
58
  # レート一覧置き場
65
59
  r.register( :rate_dir ) {
66
60
  dir = r.base_dir + "/" + r.conf.get([:dir,:rate_data], "rate_datas")
@@ -93,10 +87,6 @@ module JIJI
93
87
  r.permitter.proxy( c, [/^(info|debug|warn|error|fatal|close)$/] )
94
88
  }
95
89
 
96
- # クライアント
97
- r.register( :client ) {
98
- JIJI::SingleClickClient.new( r.account, r.conf, r.server_logger )
99
- }
100
90
  # Permitter
101
91
  r.register( :permitter ) {
102
92
  JIJI::Permitter.new( 5, 0 )
@@ -138,7 +128,6 @@ module JIJI
138
128
  r.register( :agent_manager, :model=>:multiton_initialize ) {|c,p,id,failsafe|
139
129
  c = JIJI::AgentManager.new( id, r.agent_registry, r.process_logger(id), failsafe )
140
130
  c.operator = r.operator(id, false, nil) # 作成段階では常に取引は行なわない。
141
- c.client = r.client
142
131
  c.registry = r
143
132
  c.conf = r.conf
144
133
  c.trade_result_dao = r.trade_result_dao(id)
@@ -162,7 +151,8 @@ module JIJI
162
151
 
163
152
  # オペレーター
164
153
  r.register( :operator, :model=>:multiton_initialize ) {|c,p,id,trade_enable,money|
165
- c = JIJI::RmtOperator.new(r.client, r.process_logger(id), r.trade_result_dao(id), trade_enable, money)
154
+ c = JIJI::RmtOperator.new(r.securities_plugin_manager.selected,
155
+ r.process_logger(id), r.trade_result_dao(id), trade_enable, money)
166
156
  c.conf = r.conf
167
157
  r.permitter.proxy( c, [/^(sell|buy|commit)$/], [/^(sell|buy)$/])
168
158
  }
@@ -173,7 +163,7 @@ module JIJI
173
163
  c.observer_manager = r.rmt_observer_manager
174
164
  c.conf = r.conf
175
165
  c.logger = r.process_logger("rmt")
176
- c.client = r.client
166
+ c.client = r.securities_plugin_manager.selected
177
167
  c
178
168
  }
179
169
  r.register( :backtest_collector, :model=>:multiton_initialize ) {|c,p,id, start_date, end_date|
@@ -181,7 +171,7 @@ module JIJI
181
171
  c.observer_manager = r.backtest_observer_manager(id)
182
172
  c.conf = r.conf
183
173
  c.logger = r.process_logger(id)
184
- c.client = r.client
174
+ c.client = r.securities_plugin_manager.selected
185
175
  c
186
176
  }
187
177
 
@@ -256,10 +246,25 @@ module JIJI
256
246
  c.server_logger = r.server_logger
257
247
  c.version_file = r.version_file
258
248
  c.migrators = [
259
- { :version=>Gem::Version.new( "1.0.3" ), :migrator=>JIJI::Migration::Migrator1_0_3.new}
249
+ { :version=>Gem::Version.new( "1.0.3" ), :migrator=>JIJI::Migration::Migrator1_0_3.new},
250
+ { :version=>Gem::Version.new( "1.1.0" ), :migrator=>JIJI::Migration::Migrator1_1_0.new}
260
251
  ]
261
252
  c
262
253
  }
254
+
255
+ # プラグイン
256
+ r.register( :plugin_loader ) {
257
+ c = JIJI::Plugin::Loader.new
258
+ c.server_logger = r.server_logger
259
+ c
260
+ }
261
+ # Securitiesプラグイン
262
+ r.register( :securities_plugin_manager ) {
263
+ c = JIJI::Plugin::SecuritiesPluginManager.new
264
+ c.conf = r.conf
265
+ c.server_logger = r.server_logger
266
+ c
267
+ }
263
268
  }
264
269
  end
265
270
 
data/lib/jiji/server.rb CHANGED
@@ -16,6 +16,8 @@ module JIJI
16
16
  JIJI::Util.log_if_error_and_throw(registry.server_logger) {
17
17
  registry.migrator.migrate
18
18
  }
19
+ # プラグイン
20
+ registry.plugin_loader.load
19
21
 
20
22
  conf = registry[:conf]
21
23
  param[:Port] = conf.get([:server,:port], 7000).to_i
@@ -48,7 +50,7 @@ module JIJI
48
50
  begin
49
51
  registry.permitter.close
50
52
  ensure
51
- registry.client.close
53
+ registry.securities_plugin_manager.close
52
54
  end
53
55
  end
54
56
  stop_callback_org.call if stop_callback_org
@@ -11,6 +11,11 @@ module JIJI
11
11
  }
12
12
  return buff
13
13
  end
14
+
15
+ # 利用可能な通貨ペアの一覧を取得する。
16
+ def pairs
17
+ @rate_dao.list_pairs
18
+ end
14
19
 
15
20
  # 利用可能なレートの開始日時/終了日時を得る。
16
21
  def range( pair )
@@ -22,8 +27,8 @@ module JIJI
22
27
  # 指定した月で利用可能な日の一覧を得る。
23
28
  def enable( pair, year, month )
24
29
  dao = @rate_dao.dao( pair )
25
- list = dao.list_data_files( :raw, "#{year}-#{sprintf("%02d", month)}" )
26
- list.map {|d| d[-2,2] }
30
+ datas = dao.list_data_files( :raw, "#{year}-#{sprintf("%02d", month)}" )
31
+ datas.map {|d| d[-2,2] }
27
32
  end
28
33
 
29
34
  attr :rate_dao, true
@@ -43,13 +43,13 @@ class Session
43
43
  @error = nil
44
44
  @proc = proc {|*args|
45
45
  begin
46
- @value = block.call(*args)
46
+ @value = block.call(*args)
47
47
  rescue Exception
48
48
  @error = $!
49
49
  ensure
50
- @mutex.synchronize{
51
- @finished = true
52
- @cv.signal
50
+ @mutex.synchronize{
51
+ @finished = true
52
+ @cv.signal
53
53
  }
54
54
  end
55
55
  }
@@ -7,73 +7,6 @@ module JIJI
7
7
  module Util
8
8
 
9
9
  module_function
10
- # 通貨ペアコードをシンボルに変換する
11
- def convert_currency_pair_code(code)
12
- case code
13
- when ClickClient::FX::USDJPY
14
- return :USDJPY
15
- when ClickClient::FX::EURJPY
16
- return :EURJPY
17
- when ClickClient::FX::GBPJPY
18
- return :GBPJPY
19
- when ClickClient::FX::AUDJPY
20
- return :AUDJPY
21
- when ClickClient::FX::NZDJPY
22
- return :NZDJPY
23
- when ClickClient::FX::CADJPY
24
- return :CADJPY
25
- when ClickClient::FX::CHFJPY
26
- return :CHFJPY
27
- when ClickClient::FX::ZARJPY
28
- return :ZARJPY
29
- when ClickClient::FX::EURUSD
30
- return :EURUSD
31
- when ClickClient::FX::GBPUSD
32
- return :GBPUSD
33
- when ClickClient::FX::AUDUSD
34
- return :AUDUSD
35
- when ClickClient::FX::EURCHF
36
- return :EURCHF
37
- when ClickClient::FX::GBPCHF
38
- return :GBPCHF
39
- when ClickClient::FX::USDCHF
40
- return :USDCHF
41
- end
42
- end
43
-
44
- # シンボルを通貨ペアコードに変換する
45
- def convert_currency_pair_code_r(code)
46
- case code
47
- when :USDJPY
48
- return ClickClient::FX::USDJPY
49
- when :EURJPY
50
- return ClickClient::FX::EURJPY
51
- when :GBPJPY
52
- return ClickClient::FX::GBPJPY
53
- when :AUDJPY
54
- return ClickClient::FX::AUDJPY
55
- when :NZDJPY
56
- return ClickClient::FX::NZDJPY
57
- when :CADJPY
58
- return ClickClient::FX::CADJPY
59
- when :CHFJPY
60
- return ClickClient::FX::CHFJPY
61
- when :ZARJPY
62
- return ClickClient::FX::ZARJPY
63
- when :EURUSD
64
- return ClickClient::FX::EURUSD
65
- when :GBPUSD
66
- return ClickClient::FX::GBPUSD
67
- when :AUDUSD
68
- return ClickClient::FX::AUDUSD
69
- when :EURCHF
70
- return ClickClient::FX::EURCHF
71
- when :GBPCHF
72
- return ClickClient::FX::GBPCHF
73
- when :USDCHF
74
- return ClickClient::FX::USDCHF
75
- end
76
- end
77
10
 
78
11
  #ブロック内で例外が発生したらログに出力する。
79
12
  #発生した例外は内部で握る。
@@ -0,0 +1,6 @@
1
+
2
+ require 'jiji/plugin/embedded/click_securities_demo_plugin'
3
+
4
+ JIJI::Plugin.register(
5
+ JIJI::Plugin::SecuritiesPlugin::FUTURE_NAME,
6
+ JIJI::Plugin::ClickSecuritiesDemoPlugin.new )
data/swf/build.xml CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  <property name="dist.dir" value="../html/swf" />
5
5
 
6
- <property name="FLEX_HOME" value="../tool/flex_sdk_3.1.0.2710" />
6
+ <property name="FLEX_HOME" value="../../tool/flex_sdk" />
7
7
  <taskdef resource="flexTasks.tasks" />
8
8
 
9
9
  <target name="build.chart" depends="clean">
@@ -75,7 +75,6 @@ package fx.chart {
75
75
  candleChart.onCandleDataChanged, candleChart);
76
76
 
77
77
  pointer = new Pointer( model, ctrl, rc );
78
- scaleSelector = new ScaleSelector( model, ctrl, rc );
79
78
 
80
79
  scroll = new Scroll( model, ctrl, rc );
81
80
  ctrl.addEventListener( fx.chart.ctrl.Event.RANGE_CHANGED,
@@ -89,9 +88,12 @@ package fx.chart {
89
88
  ctrl.addEventListener( fx.chart.ctrl.Event.OUTPUT_LIST_CHANGED,
90
89
  graphManager.onGraphListChanged, graphManager);
91
90
 
92
- registExternalInterface();
93
- ExternalInterface.call( "onChartLoaded" );
94
-
91
+ // 利用可能な通貨ペアの一覧を取得
92
+ ctrl.requestPairs( function(data:Array):void {
93
+ scaleSelector = new ScaleSelector( model, ctrl, rc, data );
94
+ registExternalInterface();
95
+ ExternalInterface.call( "onChartLoaded" );
96
+ });
95
97
 
96
98
  } catch ( ex:Error ) {
97
99
  //log(ex.message + ":" + ex.getStackTrace());
@@ -247,6 +247,18 @@ package fx.chart.ctrl {
247
247
  log(error); // TODO
248
248
  } );
249
249
  }
250
+ /**
251
+ * 利用可能な通貨ペアの一覧を取得する
252
+ */
253
+ public function requestPairs( callback:Function ):void {
254
+ rateService.pairs(
255
+ function( datas:Array ):void {
256
+ model.pairs = datas;
257
+ callback.call( null, datas );
258
+ }, function(error:*):void {
259
+ log(error); // TODO
260
+ } );
261
+ }
250
262
  /**設定を記録する*/
251
263
  public function save( name:String, value:Object ):void {
252
264
  var so:SharedObject = SharedObject.getLocal("chartInfo");
@@ -23,6 +23,8 @@ package fx.chart.model {
23
23
  /** プロセスID */
24
24
  public var processId:String;
25
25
 
26
+ /** 利用可能な通貨ペア */
27
+ public var pairs:Array;
26
28
  /** 現在表示している通貨ペア */
27
29
  public var pair:String;
28
30
  /** 現在のスケール */
@@ -35,7 +37,7 @@ package fx.chart.model {
35
37
  private var _startDate:Date;
36
38
  /** 表示終了日時 */
37
39
  public var endDate:Date;
38
-
40
+
39
41
  /**
40
42
  * 全体の開始日時と終了日時
41
43
  * rmtの場合、レートデータの存在期間
@@ -70,7 +70,7 @@ package fx.chart.ui {
70
70
  var text:TextField = new TextField();
71
71
  text.selectable = false;
72
72
  text.width = width;
73
- text.height = height;
73
+ //text.height = height;
74
74
  text.defaultTextFormat = format;
75
75
  text.y = y;
76
76
  text.x = x;
@@ -20,26 +20,15 @@ package fx.chart.ui {
20
20
  private var scaleSelector:ComboBox;
21
21
 
22
22
  public function ScaleSelector(model:Model,
23
- controller:Controller, rc:RenderingContext ) {
23
+ controller:Controller, rc:RenderingContext, pairs:Array ) {
24
24
  super( model,controller,rc );
25
25
 
26
26
  pairSelector = new ComboBox();
27
- pairSelector.dataProvider = new ArrayCollection([
28
- {label:"USD/JPY", data:"USDJPY"},
29
- {label:"EUR/JPY", data:"EURJPY"},
30
- {label:"GBP/JPY", data:"GBPJPY"},
31
- {label:"CAD/JPY", data:"CADJPY"},
32
- {label:"CHF/JPY", data:"CHFJPY"},
33
- {label:"AUD/JPY", data:"AUDJPY"},
34
- {label:"NZD/JPY", data:"NZDJPY"},
35
- {label:"ZAR/JPY", data:"ZARJPY"},
36
- {label:"EUR/USD", data:"EURUSD"},
37
- {label:"GBP/USD", data:"GBPUSD"},
38
- {label:"AUD/USD", data:"AUDUSD"},
39
- {label:"USD/CHF", data:"USDCHF"},
40
- {label:"EUR/CHF", data:"EURCHF"},
41
- {label:"GBP/CHF", data:"GBPCHF"},
42
- ]);
27
+ var tmp:Array = [];
28
+ for (var i:int=0;i<pairs.length;i++) {
29
+ tmp[i] = {label:pairs[i], data:pairs[i]};
30
+ }
31
+ pairSelector.dataProvider = new ArrayCollection(tmp);
43
32
  pairSelector.width = 100;
44
33
  pairSelector.x = rc.stage.ctrl.right - 200 - 5;
45
34
  pairSelector.y = rc.stage.ctrl.top;
@@ -0,0 +1,3 @@
1
+ ---
2
+ :securities:
3
+ :type: "mock"
@@ -1,19 +1,6 @@
1
1
  ---
2
+ :securities:
3
+ :type: mock
2
4
 
3
- server:
4
- port: 7000
5
-
6
- securities:
7
- account:
8
- user: "<user-name>"
9
- password: "<password>"
10
-
11
- collector:
12
- collect: false
13
- wait_time: 10
14
-
15
- dir:
16
- rate_data: rate_datas
17
- process_log: process_logs
18
- log: logs
19
- html: ../html
5
+ :collector:
6
+ collect: false