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

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

スポンサーサイト

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

トラップリピートイフダン その2

トラップリピートイフダンを作っています

前回は、買いポジション数が最大4で損切りなしのストラテジーを作りました

今回は、2つの改善を実施します

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

1 注文価格は直近の1つだけ入力して、ポジション間隔値を入力することにより他の注文価格を定める

2 最大ポジション数を選択できる(最大10ポジションにしました)

  実際にストラテジーを動かすには、ストラテジーのプロパティで
  ポジション制限の許可上限を最大ポジション数に合わせておく必要があります

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

後は前回と同様にします

* 利益確定は利益額(Profit_Target_Amount)を円で入力します

* ストラテジーをスタートさせる時は、現在価格よりも安い注文価格を入力します

* shareorposition を 1にするとCurSpecOrdersMode = SpecOrdersMode.perLot;になって
1つのポジションごとに利益確定します

* shareorposition を 1以外にするとCurSpecOrdersMode = SpecOrdersMode.perPosition; になって
総ポジションの損益合計で全ポジション同時に手仕舞します


具体的な変更点

1 最大ポジション数(maxposition)により場合分けをする

2 各ポジションの注文価格は、
  注文価格(m_orderprice3) = 初期注文価格(orderprice1) - 注文間隔(m_orderwidth)*間隔数(2);

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

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

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

private double m_orderprice1 = 84.00 ;

private double m_orderwidth = 0.5 ;

private double m_orderprice2 ;

private double m_orderprice3 ;

private double m_orderprice4 ;

private double m_orderprice5 ;

private double m_orderprice6 ;

private double m_orderprice7 ;

private double m_orderprice8 ;

private double m_orderprice9 ;

private double m_orderprice10 ;

private IPriceOrder m_order1;

private IPriceOrder m_order2;

private IPriceOrder m_order3;

private IPriceOrder m_order4;

private IPriceOrder m_order5;

private IPriceOrder m_order6;

private IPriceOrder m_order7;

private IPriceOrder m_order8;

private IPriceOrder m_order9;

private IPriceOrder m_order10;

private double m_Profit_Target_Amount = 500;

private double m_shareorposition = 1;

private int m_OpenLots ;

private int m_maxposition = 7;

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


[Input]
public double orderprice1{
get { return m_orderprice1; }
set { m_orderprice1 = value; }
}

[Input]
public double orderwidth{
get { return m_orderwidth; }
set { m_orderwidth = value; }
}

[Input]
public int maxposition{
get { return m_maxposition; }
set { m_maxposition = value; }
}

[Input]
public double shareorposition{
get { return m_shareorposition; }
set { m_shareorposition = value; }
}

[Input]
public double Profit_Target_Amount{
get { return m_Profit_Target_Amount; }
set { m_Profit_Target_Amount = value; }
}




protected override void Construct() {

m_order1 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order1", OrderAction.Buy));

m_order2 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order2", OrderAction.Buy));

m_order3 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order3", OrderAction.Buy));

m_order4 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order4", OrderAction.Buy));

m_order5 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order5", OrderAction.Buy));

m_order6 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order6", OrderAction.Buy));

m_order7 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order7", OrderAction.Buy));

m_order8 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order8", OrderAction.Buy));

m_order9 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order9", OrderAction.Buy));

m_order10 = OrdersFactory.CreateLimit
(new OrdersCreateParams(Lots.Default, "order10", OrderAction.Buy));
}




protected override void Initialize() {
}

protected override void Execute(){

if (maxposition > 10)return;

m_orderprice2 = orderprice1 - m_orderwidth;

m_orderprice3 = orderprice1 - m_orderwidth*2;

m_orderprice4 = orderprice1 - m_orderwidth*3;

m_orderprice5 = orderprice1 - m_orderwidth*4;

m_orderprice6 = orderprice1 - m_orderwidth*5;

m_orderprice7 = orderprice1 - m_orderwidth*6;

m_orderprice8 = orderprice1 - m_orderwidth*7;

m_orderprice9 = orderprice1 - m_orderwidth*8;

m_orderprice10 = orderprice1 - m_orderwidth*9;

m_OpenLots = StrategyInfo.MarketPosition ;


if (maxposition ==1){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
}

if (maxposition ==2){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
}

if (maxposition ==3){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
}

if (maxposition ==4){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
if (m_OpenLots == 3){
m_order4.Generate(m_orderprice4);
}
}

if (maxposition ==5){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
if (m_OpenLots == 3){
m_order4.Generate(m_orderprice4);
}
if (m_OpenLots == 4){
m_order5.Generate(m_orderprice5);
}
}

if (maxposition ==6){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
if (m_OpenLots == 3){
m_order4.Generate(m_orderprice4);
}
if (m_OpenLots == 4){
m_order5.Generate(m_orderprice5);
}
if (m_OpenLots == 5){
m_order6.Generate(m_orderprice6);
}
}

if (maxposition ==7){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
if (m_OpenLots == 3){
m_order4.Generate(m_orderprice4);
}
if (m_OpenLots == 4){
m_order5.Generate(m_orderprice5);
}
if (m_OpenLots == 5){
m_order6.Generate(m_orderprice6);
}
if (m_OpenLots == 6){
m_order7.Generate(m_orderprice7);
}
}

if (maxposition ==8){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
if (m_OpenLots == 3){
m_order4.Generate(m_orderprice4);
}
if (m_OpenLots == 4){
m_order5.Generate(m_orderprice5);
}
if (m_OpenLots == 5){
m_order6.Generate(m_orderprice6);
}
if (m_OpenLots == 6){
m_order7.Generate(m_orderprice7);
}
if (m_OpenLots == 7){
m_order8.Generate(m_orderprice8);
}
}

if (maxposition ==9){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
if (m_OpenLots == 3){
m_order4.Generate(m_orderprice4);
}
if (m_OpenLots == 4){
m_order5.Generate(m_orderprice5);
}
if (m_OpenLots == 5){
m_order6.Generate(m_orderprice6);
}
if (m_OpenLots == 6){
m_order7.Generate(m_orderprice7);
}
if (m_OpenLots == 7){
m_order8.Generate(m_orderprice8);
}
if (m_OpenLots == 8){
m_order9.Generate(m_orderprice9);
}
}

if (maxposition ==10){

if (m_OpenLots == 0){
m_order1.Generate(orderprice1);
}
if (m_OpenLots == 1){
m_order2.Generate(m_orderprice2);
}
if (m_OpenLots == 2){
m_order3.Generate(m_orderprice3);
}
if (m_OpenLots == 3){
m_order4.Generate(m_orderprice4);
}
if (m_OpenLots == 4){
m_order5.Generate(m_orderprice5);
}
if (m_OpenLots == 5){
m_order6.Generate(m_orderprice6);
}
if (m_OpenLots == 6){
m_order7.Generate(m_orderprice7);
}
if (m_OpenLots == 7){
m_order8.Generate(m_orderprice8);
}
if (m_OpenLots == 8){
m_order9.Generate(m_orderprice9);
}
if (m_OpenLots == 9){
m_order10.Generate(m_orderprice10);
}
}

if ((shareorposition == 1)){
CurSpecOrdersMode = SpecOrdersMode.perLot;
}
else{
CurSpecOrdersMode = SpecOrdersMode.perPosition;
}
if (Functions.DoubleGreater(Profit_Target_Amount, 0)){
GenerateProfitTarget(Profit_Target_Amount);
}
}
}
}

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

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

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

初めての方はこちらから
ストラテジートレーダー超入門 自動売買プログラミング編

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

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

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

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

人気blogランキング






[相場の流れは]
FX ポータル
西原さん スイスに注目
今井さん ゆっくりと円安
松田さん 各国事情
吉田さん ドル高
陳さん  市場センティメント


スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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