FX取引ルール確立のために

取引方針が定まらぬ臆病者の外国為替証拠金取引の行方。 取引ルールの柱にテクニカルな売買サインを導入中。システム開発状況を全て公開。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ストラテジートレーダーで自動売買プログラムを作る 2

FXCMのストラテジートレーダーでのストラテジーの作り方を紹介します。

ちゃんとした方法かどうかは分かりません。
何しろFXCMがサポートは一切しないと宣言していて、解説も何もありません。
行き当たりばったりでやるのみです。
従って、私も一切の責任は負いかねます。

前回、インジケータのソースコードの一部を埋め込んで、売買命令を追加すると完成する
と書きました。

今回はもうちょっと具体的に書きます。

1 新規ストラテジーを作るボタンをクリックします。
  以下のひな型が表示されます。 

using System;
using System.Drawing;
using Broker.StrategyLanguage.Function.BuiltIn;
using Fx2GoCommon;

namespace Broker.StrategyLanguage.Strategy {

public class test : BaseStrategyAdvisor {
public test(object _ctx):base(_ctx){}
private IMarketOrder buy_order;

protected override void Construct() {
// TODO : create all members here
buy_order = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, OrderAction.Buy));
}

protected override void Initialize() {
// TODO : assign inputs here
}

protected override void Execute(){
// TODO : implement indicator logic here
buy_order.Generate();
}
}
}

  このひな形は大きく4つに部分で構成されています。

class (????)
Construct (構成)
Initialize (初期設定)
Execute (実行)

2 インジケータのそれぞれの部分のソースコードをコピーして
  ひな形のその部分に貼り付けます。

3 それぞれの部分に現れるplotの文を削除します 

4 class部の以下の文の stochastics_slowは、classの次にくる単語(ストラテジーの名)と同じにします。

public stochastics_slow(object ctx) :
base(ctx) {}

5 private IMarketOrder buy_order; を以下に変更する

private IMarketOrder m_Order0;

private IMarketOrder m_Order1;


6 Construct部の以下の行をMACDストラテジーの例にならって書き換えます
  つまり以下を削除して、MACDストラテジーの同じ部分をコピー/貼り付けします。

    buy_order = OrdersFactory.CreateMarketNextBar(new OrdersCreateParams(Lots.Default, OrderAction.Buy));

7 インジケータにある以下の文をExecute部の前に追加する

    protected override void Destroy() {}

8 Execute部の if文 を以下に変更する(MACDストラテジーのソースコードのアレンジです)
  意味は、
  m_oslowk(slow kライン)が m_oslowd(slow dライン)を上に抜けた場合、m_Order0(買いオーダー)を実行する
  m_oslowk(slow kライン)が m_oslowd(slow dライン)を下に抜けた場合、m_Order0(売りオーダー)を実行する

  ポジションがある場合はドテンになる

if ((Functions.DoubleGreater(Bars.CurrentBar, 2) && Functions.CrossesOver(this, m_oslowk, m_oslowd))){
m_Order0.Generate();
}

if ((Functions.DoubleGreater(Bars.CurrentBar, 2) && Functions.CrossesUnder(this, m_oslowk, m_oslowd))){
m_Order1.Generate();

9 compileをクリックしてエラー表示が出た場合は、ひたすら比較検討して訂正する


     *************************

コラム執筆陣:松田哲、吉田恒、陳満咲杜、マット今井
FX ポータル
陳さん  金とドル
松田さん 介入でも中国は円買い
吉田さん 介入の効果切れは10月
今井さん ドル安について

参考になったらクリックよろしく 人気blogランキング

外国為替のFXCMジャパン
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://fxrun.blog55.fc2.com/tb.php/1603-e4322cb4
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。