私は今までEAを作成したことがありませんが、私は30分ごとに起こる貿易を持っています。私はそれをgbpusdで取引します。現在の30分のろうそくが1ピップで前のろうそくを破ったとき、私は5ピップを取りに行くために入力します。
もし、それほど複雑なものでなければ、私はこのことについて手助けができるかもしれません。
plsは私に詳細な情報を提供する
もし、それほど複雑なものでなければ、お手伝いできるかもしれません。
もっと情報をください。
偉大な。唯一のルールは次のとおりです。
現在のキャンドルは1ピップで前の30メートルろうそくの高または低を突破したときに入力します(購入する高、販売する低)。
唯一の20ピップス以上であるろうそくを交換します。
注文が成立したら、ストップは直前30分のローソク足の安値(または高値)です。
ローソク足が割れるか、注文が 入らなければ、次の30分足で20pips以上のローソク足ができるのを待つ。
今週はこのトレードでトレーリングストップを試して、もう少しピップ数を増やせるか確認しようと思っています。
教えてください。
現在のローソク足が30m前のローソク足の高値または安値を1pip更新したらエントリー(高値は買い、安値は売り)。
この点を理解する
20pip以上のローソク足のみ取引可能です。
あなたは、前のろうそくの高値 - 安値は20以上のピップを与えるということですか?
注文が成立したら、ストップは直前30分のローソク足の安値(または高値)です。
もっと説明してください
ローソク足が割れるか、注文が出なければ、次の30分足のローソク足が20pips以上となるのを待つ。
2.の点を明確にしてください。
:)
回答
Doshur
そうです。前のローソク足が20ピップス以上でないと取引できません。そうすることで、適切なサイズのチャンネルを持つことができます。
ストップ
の例です。
前回の高値は1.7500
前回の安値は1.7480
買い注文は1.7001 tp 1.7506 stは1.7480です。
売りは1.7479 tp 1.7474 stは1.7500です。
さて、もし私たちがレンジを持っていて、注文が出されなかった場合、つまり市場が注文を有効にするために高値や安値を更新しなかった場合、前の30分のレンジは無視され、新しい30分のキャンドル(これが前のレンジとなる)が新しい取引番号となる。
例
前回の高値は1.7550
前回の安値は1.7500
新しい30mローソクは私たちの範囲の間に滞在し、注文がアクティブになることはありません。
新しい30mローソク足が来て、以前のレンジは次のようになります。
高値1.7540
安値1.7520
これが新しいレンジとなり、1.7550 1.7500のレンジは無視されます。
私は新しい30分のキャンドルが開始されたときに保留中の注文で これを取引する。注文のいずれかがアクティブになったときに私は他の注文を削除します。
もう大丈夫です。
ここ数日、コーディングに取りかかります。消化させてください。
:)
もう大丈夫です。
ここ数日、コーディングに取りかかります。消化させてください。
:)
このトレードは楽しくて、ちょっと得した気分になりますね。
今週はトレーリングストップを試してみるつもりです。今までやったことがなかったのですが、いつも5ピップスを狙っていました。
このトレードは楽しくて、ちょっと得した気分になります。
今週はトレーリングストップを試してみるつもりです。今までやったことがなかったのですが、いつも5ピップスを狙っていました。
面白い戦略だ。私は以下のコードを書いて実装しました。コードは大きくコメントされているので、理解し、修正することができるはずだ。Staregyはバックテストがうまくいかなかったけど。
//+------------------------------------------------------------------+
//|30分ストラテジー.mq4|||ブレンダン・ケリー
//| Copyright © 2008, Brendan Kelly|ブレンダン・ケリー|著作権について
//+------------------------------------------------------------------+
#property copyright "著作権 © 2008, Brendan Kelly"
#property リンク ""
extern string Order_Comment = "30Minストラテジー";
extern double Lots = 0.1;
extern int TakeProfit = 5;
static bool ReadyToTradeThisBar = false;
int MagicNumber = 9999;
int start()
{
if (NewBar()) // これはすべての新しいバーの開始時に実行されます。
{
CloseAllOpenOrders(); //まず、前のバーから残っている既存の取引をすべて決済します。
if(High[1] - Low[1]>= 20*Point) //前のバーが少なくとも20ロングである場合
ReadyToTradeThisBar = true; //このバーを取引することができます。
else //else
ReadyToTradeThisBar = false; //このバーを取引することはできません。
}
//これは1ティックごとに行われます
if (ReadyToTradeThisBar == true) //このバーを取引できる場合
{
if (OrdersTotal() < 1) //そして、現在実行中の取引がない場合
{
if(Ask > High[1] + 1*Point) //現在の呼値が前のバーの高値に1を足した値より大きい場合
{ // その後、買い注文を出す
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Low[1],Ask+ TakeProfit*Point,Order_Comment,MagicNumber,0,Blue);
ReadyToTradeThisBar = false; //現在の取引が終了するまで、さらなる取引を防止します。
}
if(Bid < Low[1] - 1*Point) //かつ、現在の売値が前のバーの安値から1を引いた値より小さい場合
{ //次に、売り注文を出す
注文送信(Symbol(),OP_SELL,Lots,Bid,3,High[1],Bid-TakeProfit*Point,Order_Comment,MagicNumber,0,Red).OrderSend(Simple)
ReadyToTradeThisBar = false; //現在の取引が終了するまで、次の取引を防止します。
}
}
}
return(0);
}//end
//サポート関数
// 現在のバー/ローソク足が形成されたばかりの場合、true を返します。
bool NewBar()
{
static datetime PreviousBar;
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true)とする。
}
さもなくば
{
return(false)。
return(false); // if - else文が実行されない場合
}
//全ての未決済注文を閉じる
int CloseAllOpenOrders()
{
int OrderCount = OrdersTotal();
int index = 0;
int TicketNumber = 0;
for(index=OrderCount-1;index>-1;index--)
{
OrderSelect(index,SELECT_BY_POS,MODE_TRADES);
if (オーダーマジック番号()==マジック番号)
{
TicketNumber = OrderTicket();
if(OrderType() == OP_BUY || OrderType() == OP_SELL )
{
OrderClose(TicketNumber,Lots,Bid,3,Red);
}
}
}
return(0);
よろしくお願いします。
ブレンダン
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索