アスク! - ページ 32

 

デイブ

そう簡単にあきらめないでください。もし私があなたに何をすべきか教えても、それは間違っているかもしれないし、あなたは正しいことを学べないでしょう。

ここでもう一度試してみましょう。

がんばってください。

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

{

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modify stop loss and take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modify stop loss and take profit

return(0);

}

}

 

自分の注文がストップロスになったかどうか、どうすれば分かりますか?

こんにちは、皆さん

私はトレーリングストップを使用するEAをプログラミングしています。ストップロスに当たると、新しい注文を出すというものです。そこで質問なのですが、注文がストップロスに当たった場合、次のバーで新しい注文を出すかどうかを決定するようにEAに指示するにはどうしたらいいのでしょうか?

 
 
iscuba11:
これのどこを修正するのですか? 元のストップロスは40、テイクプロフィットは100でした。 スリープモードの一部として、ストップロスは既存のオープン オーダーの15に、テイクプロフィットは既存のオープンオー ダーの25に変更されることになっています。

オープンオーダーチケット: スリープモード前。

スリープモード前 ストップロス-40 スリープモード前 テイクプロフィット-100 スリープモード後 ストップロス修正-15 スリープモード後 テイクプロフィット修正-25

注文の設定を初期化するのではなく、すでに発注され、まだ有効な既存の注文を修正 するのです。

とにかく助けてくれてありがとうございます。 なぜこんなに簡単なことが難しく見えるのでしょうか?

デイブ <<

スリープモードはどのように定義するのですか?

ordermodify()ループの前に追加するだけです。

のように...

if(sleepcome)

{

for(.....)

{

//delete my code gave you before or make it as comment

orderselect(.....);

.

.

.

}

}

これは役に立つかもしれません

 
AnasFX:
こんにちは、私はトレーリングストップを使用するEAをプログラミングしています。ストップロスにヒットすると、新しい注文を開くというものです。そこで質問なのですが、注文がストップロスに当たったとき、次のバーで新しい注文を出すかどうか判断するようにEAに指示するにはどうしたらいいでしょうか?

ordercloseprice() = orderstoploss() ならば、SLにヒットしてクローズした取引履歴をチェック する。

for(int hcnt=0;hcnt<HistoryTotal();hcnt++)

{

OrderSelect(hcnt, SELECT_BY_POS, MODE_HISTORY);

if(OrderSymbol()==Symbol())

{

if(OrderClosePrice()==OrderStopLoss())

.

.

.

}

}

 

ストップロスの時間

phoenix:
もしordercloseprice() = orderstoploss()であれば、取引履歴をチェックし、SLにヒットしてクローズします。

for(int hcnt=0;hcnt<HistoryTotal();hcnt++)

{

OrderSelect(hcnt, SELECT_BY_POS, MODE_HISTORY);

if(OrderSymbol()==Symbol())

{

if(OrderClosePrice()==OrderStopLoss())

.

.

.

}

}

アイデアをありがとうございました。私はまた、そのストップロスの時間と、その時間が現在のバー内にあるかどうかを知りたいのです。私はたくさんのストップロスを持っているかもしれませんが、私はそれが現在の時間の バーでストップロスにヒットするかどうかを知りたいのです。注文の終了時刻をチェックして、現在のバーの時刻と比較する必要がありますか?

 

EAに買いや売りを表示する

EAの動作中にチャート上に矢印やテキストオブジェクトなどを表示させたいのですが、オブジェクトが表示されないようです。 どなたかチャートに描画するEAサンプルをお持ちの方はいらっしゃいませんか?

また、Strategy Testerには、テスト実行後にチャートを表示するボタンがありますが、矢印が表示されないのです。 これはbuild 195の問題なのでしょうか、過去にそこで見たことがあるのを私は知っているからです。 この矢印オブジェクトを修正するにはどうしたらいいのでしょうか? もっと大きくしたいのですが、テスターでチャートを見る方法がわかりません。

どちらの問題も、EAからユーザーのフィードバックを得るという点では同じなのでしょうね。

 

私は今調整中のエキスパートを持っていて、前に閉じたバーが極端に長かった場合、エントリーシグナルを避けたいと思いました。(>30 pips) 条件として下のフレーズを追加しましたが、認識されないようです。私はコーディングが得意ではありませんが、エキスパートを調整する運があり、学びながらやっています。どなたか、ここで使うべきロジックやフレーズを教えていただけませんか?

セクションの下にあります。

-----------------------------------

voidCheckForSignals(){。

-----------------------------------

という条件を入れました。

-----------------------------------

if ((クローズ[1])-(オープン[1])<30 ){

buysig=true です。

-----------------------------------

ご指摘ありがとうございました。

MJ

 
marketjouster:
私は今調整中のエキスパートを持っていて、前に閉じたバーが極端に長かった場合、エントリーシグナルを避けたいと思っていました。(>30 pips) 条件として下のフレーズを追加しましたが、認識されないようです。 私はコーディングが得意ではありませんが、エキスパートを調整する運があり、学びながらやっています。 どなたか、ここで使うべきロジックやフレーズを教えていただけませんか?

if ((終値[1])-(始値[1])<30 ) ...

MJ

MJです。

例えばClose[1]が1.2835、Open[1]が1.2805(強気バー)だとすると、その差は0.0030なので30に対するチェックはうまくいきません。さらに、Close[1] が 1.2805 で Open[1] が 1.2835 (弱気バー) であった場合はどうでしょうか?0.0030となります。

そこでまず、Close[1]-Open[1] < (30*Point) で最初の問題を解決し、次にMathAbs() 関数で 引き算の絶対値を求めなければなりません。

要するに使用方法:if MathAbs(Close[1]-Open[1])<(30*Point)....

HTH

ヤニス

 

ロングバーのトレードエントリーを 回避するコード

Yannis:
MJです。

例えばClose[1]が1.2835、Open[1]が1.2805(強気バー)だとすると、その差は0.0030なので30に対するチェックはうまくいきません。さらに、Close[1] が 1.2805 で Open[1] が 1.2835 (弱気バー) であった場合はどうでしょうか?0.0030となります。

そこでまず、Close[1]-Open[1] < (30*Point) で最初の問題を解決し、次に MathAbs() 関数で引き算の絶対値を求めなければなりません。

要するに使用方法:if MathAbs(Close[1]-Open[1])<(30*Point)....

HTH

ヤニス

Yannisさん、どうもありがとうございます。 あなたの説明は非常に明確であり、実際のコードを含めることに感謝します。 続けて質問させてください。 もし私がエキスパートアドバイザーのプロパティウィンドウでロングバーのピップ数を調整できるようにしたかったら、次のように使うことができますか?

extern int LBE=30; // LBEは'Long Bar Entry'です。 デフォルトは30

エキスパートのヘッダーセクションで、そしてあなたのコードの行で30の代わりにLBEを使用していますか?

もしMathAbs(Close[1]-Open[1])<(LBE*Point)であれば。

これなら、手動でバリアントピップ設定をテストし、バックテストで最適化することができますね。

MJ