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

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

スポンサーサイト

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

反転スナイパーAのソースコード

エコトレFXの反転スナイパーAのソースコードを掲載します

反転スナイパーのドテンしないタイプです

内容
1 ある期間の安値高値を更新したが、すぐに反転した場合にエントリー
2 手仕舞は指値、逆指値
3 ドテンのエントリーはしない

売買サイン:

エントリー可能条件
  ポジションを持っていない
  買いの条件は、ある期間の安値を更新したが、そのバーは陽線で終わった
  売りの条件は、ある期間の高値を更新したが、そのバーは陰線で終わった

エントリー
  買い条件が成立したバーの高値で逆指値買いエントリー
  売り条件が成立したバーの安値で逆指値売りエントリー

手仕舞
  買い条件が成立したバーの安値で逆指値(損切り)
  売り条件が成立したバーの高値で逆指値(損切り)
  買い条件が成立したバーの値幅のある倍数で指値(利益確定)
  売り条件が成立したバーの値幅のある倍数で指値(利益確定)

注意
  バックテストは行いましたが、実際にポジションを作っていません
  どんな動作をするのか検証していませんので、ご注意ください
  検証する機会がありましたら、その旨掲載します

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

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

namespace Broker.StrategyLanguage.Strategy {
public class TurningSniperA : BaseStrategyAdvisor {

private int m_length = 20;

private double m_multi = 1;

private SeriesVar< Double> m_lowerband;

private SeriesVar< Double> m_upperband;

private double ExitlimitB;

private double ExitlimitS;

private double ExitstopB;

private double ExitstopS;

public TurningSniperA(object _ctx):base(_ctx){}

[Input]
public int length{
get { return m_length; }
set { m_length = value; }
}

[Input]
public double multi{
get { return m_multi; }
set { m_multi = value; }
}


private IPriceOrder m_OrderB;

private IPriceOrder m_OrderS;

private IPriceOrder m_OrderB_SL;

private IPriceOrder m_OrderS_SL;

private IPriceOrder m_OrderB_LP;

private IPriceOrder m_OrderS_LP;



protected override void Construct() {

m_lowerband = new SeriesVar< Double>(this);
m_upperband = new SeriesVar< Double>(this);

m_OrderB =
OrdersFactory.CreateStop(new OrdersCreateParams(Lots.Default, "Buy", OrderAction.Buy));
m_OrderS =
OrdersFactory.CreateStop(new OrdersCreateParams(Lots.Default, "Sell", OrderAction.SellShort));
m_OrderB_LP =
OrdersFactory.CreateLimit(new OrdersCreateParams(Lots.Default, "L_LP", OrderAction.Sell));
m_OrderS_LP =
OrdersFactory.CreateLimit(new OrdersCreateParams(Lots.Default, "S_LP", OrderAction.BuyToCover));
m_OrderB_SL =
OrdersFactory.CreateStop(new OrdersCreateParams(Lots.Default, "L_SL", OrderAction.Sell));
m_OrderS_SL =
OrdersFactory.CreateStop(new OrdersCreateParams(Lots.Default, "S_SL", OrderAction.BuyToCover));

}


protected override void Initialize() {

m_lowerband.DefaultValue = 0;
m_upperband.DefaultValue = 0;
}


protected override void Execute(){

m_lowerband.Value = Functions.Lowest(Bars.Low, length, 1);
m_upperband.Value = Functions.Highest(Bars.High, length, 1);

if ((Functions.DoubleGreater(Bars.CurrentBar, 2))
&& (StrategyInfo.MarketPosition == 0)){

if ((Functions.DoubleGreater(m_lowerband[0], Bars.Low[0]))
&& (Functions.DoubleGreater(Bars.Close[0], Bars.Open[0]))){
m_OrderB.Generate(Bars.High[0]);
ExitstopB=Bars.Low[0];
ExitlimitB=Bars.High[0]+ multi * (Bars.High[0]-Bars.Low[0]);
}


if ((Functions.DoubleGreater( Bars.High[0], m_upperband[0]))
&& (Functions.DoubleGreater(Bars.Open[0], Bars.Close[0]))){
m_OrderS.Generate(Bars.Low[0]);
ExitstopS=Bars.High[0];
ExitlimitS=Bars.Low[0]- multi * (Bars.High[0]-Bars.Low[0]);
}
}

if(StrategyInfo.MarketPosition > 0) {
m_OrderB_SL.Generate(ExitstopB);
m_OrderB_LP.Generate(ExitlimitB);

}
else if(StrategyInfo.MarketPosition < 0){
m_OrderS_SL.Generate(ExitstopS);
m_OrderS_LP.Generate(ExitlimitS);

}
}
}
}


[当サイトで使っている自動売買システム]

FXCMはMT4よりも優れていると言っています

中身の分からないストラテジーがいやで
自分でストラテジーを作って運営しています

Strategy Trader 紹介ビデオ 取扱説明 関連サイト

ストラテジートレーダー概要

ストラテジートレーダーβ版利用ガイド

[他の自動売買サイトを探す]

人気blogランキング






[相場の流れは]
FX ポータル
西原さん ユーロドルの下落に注意
松田さん ユーロはやっぱり売り
今井さん ドル円は戻り売り
吉田さん ECB利上げと財政危機の綱引き
陳さん  ユーロ高は中国が
 
スポンサーサイト

コメント

いつも勉強させて貰ってます。

少しお聞きしたいのですが、ストラテジートレーダーのSTEAでナンピンしようとしているのですが、1つポジションを持つと追加でポジションを持たないようですが、ナンピンする方法はありますでしょうか?

ポジションを1つ持ってたら、そのポジションのオープンプライスから指定したpips分下がった(又は上がったら)ナンピンとやりたいのです。


  • 2011/02/02(水) 14:25:11 |
  • URL |
  • Red #-
  • [ 編集]

Re: Re: タイトルなし

こんにちは

> > いつも勉強させて貰ってます。
> >
> > 少しお聞きしたいのですが、ストラテジートレーダーのSTEAでナンピンしようとしているのですが、1つポジションを持つと追加でポジションを持たないようですが、ナンピンする方法はありますでしょうか?
> >
> > ポジションを1つ持ってたら、そのポジションのオープンプライスから指定したpips分下がった(又は上がったら)ナンピンとやりたいのです。

ロットを増減させる方法を考えてみようと思っていました
調べてみます

  • 2011/02/02(水) 20:58:38 |
  • URL |
  • bingodog #-
  • [ 編集]

返信ありがとうございます。

ストラテジートレーダーではポジションの扱いは注文毎に個別で管理するので出来るとは思います。
※MetaTrader5では同じシンボルだと1つに纏められて、オープンプライスは個々に注文した平均値が表示されます。

ただ、ポジション毎にIMarketOrderを分けても注文出来なかったので何でだろうと不思議でした。

ポジションの管理ですが、this.Positionsだとオープンプライスが分からないし、APIが分かれすぎですね...。

スプレッドはどの要に算出していますでしょうか?
やっぱりIFxOfferでAskとBidで計算する以外に手段ってありますか?

  • 2011/02/03(木) 09:25:47 |
  • URL |
  • Red #-
  • [ 編集]

追加注文の方法

REDさん

追加オーダーの方法ですが、以下のオーダーで出来ませんか?

nanpinorder.Generate(CurrentPosition.OpenTrades[0].Entry.Price-nanpinprice, 1);

実際に試していないので確かではありません

ストラテジーのプロパティーのポジション制限を確認する必要があるかもしれません

デモモードで確認してみてください


>
> 少しお聞きしたいのですが、ストラテジートレーダーのSTEAでナンピンしようとしているのですが、1つポジションを持つと追加でポジションを持たないようですが、ナンピンする方法はありますでしょうか?
>
> ポジションを1つ持ってたら、そのポジションのオープンプライスから指定したpips分下がった(又は上がったら)ナンピンとやりたいのです。


  • 2011/02/06(日) 01:23:49 |
  • URL |
  • bingodog #-
  • [ 編集]

ありがとうございます!

どうやら設定の問題だった様です...。
Entry.Priceを使用して計算する事でIMarketOrderでも同様な処理が実現できました。
有難う御座いました。
ただ、IPriceOrderのCreateLimitを使用する方が精度が良さそうですね。
IPriceOrderは指値・逆指値と思っていたのですが、バックテストをみていると完全な指値・逆指値ではなかったため、リアルタイムで判定して約定させるから、キャンセルとかは必要なさそうですね。
※本当の指値・逆指値は別の型?

約定についてご存知であれば教えて頂きたいのですが、
バックテストを実行していると、IMarketOrderのCreateMarketThisBarや、
IPriceOrderのCreateLimitを使用してもナンピンの場合、次のBarsに移らないと約定していません。
60分足で実行すると、次のBarsですので、60分後にナンピンするのです。

1分足でバックテストをすれば良いのでしょうが、各種インディケータは60分足で使用したいため悩んでいます。

もしかしたらこれもTick毎にバックテストをする設定にすれば良いのかもしれませんが、設定場所が不明でご存知であればお教え頂ければと思います。

  • 2011/02/07(月) 13:25:47 |
  • URL |
  • Red #-
  • [ 編集]

Re: ありがとうございます!


>
> 約定についてご存知であれば教えて頂きたいのですが、
> バックテストを実行していると、IMarketOrderのCreateMarketThisBarや、
> IPriceOrderのCreateLimitを使用してもナンピンの場合、次のBarsに移らないと約定していません。
> 60分足で実行すると、次のBarsですので、60分後にナンピンするのです。
>
> 1分足でバックテストをすれば良いのでしょうが、各種インディケータは60分足で使用したいため悩んでいます。
>
> もしかしたらこれもTick毎にバックテストをする設定にすれば良いのかもしれませんが、設定場所が不明でご存知であればお教え頂ければと思います。


ナンピンの件は、よく分かりません
実際にナンピンプログラムを作った時に検討します

  • 2011/02/12(土) 13:34:54 |
  • URL |
  • bingodog #-
  • [ 編集]

コメントの投稿


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

トラックバック

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

「FX 為替」の話題 -> ハウルのFXデイトレ ドル円一本勝負 2011/02/01のFXトレード記録

FX 為替 に関するブログ -> ハウルのFXデイトレ ドル円一本勝負 2011/02/01のFXトレード記録にほんブログ村 為替ブログ FX デイトレ派へ ↑ 昨日は30位でした! ありがとうございます。m(_ _)m クリックすると...

  • 2011/02/01(火) 21:36:18 |
  • FXをはじめるなら

「FX 為替」の話題 -> FXキャンペーン最新情報 2月 今月はノーリスクで6000円:FXテクニカル

FX 為替 に関するブログ -> FXキャンペーン最新情報 2月 今月はノーリスクで6000円:FXテクニカル 外国為替証拠金取引FXのテクニカル分析と、FX業者比較、手数料比較、スプレッド比較、スワップポイント金利比...

  • 2011/02/01(火) 22:34:33 |
  • FX投資入門

FC2Ad

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