コーディングの方法は? - ページ 266

 
ixbone:
こんにちは、皆さん。

あるペアのすべての注文(買い・売り)をマジックで集めて、ブレークイーブンになったらすべての注文をクローズしたいのです。

何かご指導をお願いします。

extern bool PairBreakeven=true;// 同じペア/マジックのすべての注文をペアごとにブレークイーブンする。

extern double Pairbreakevengain=6;// 均等割れを可能にするために必要な pips の利益。

extern double Pairbreakeven=3;// ブレークイーブン、注文クローズ、3ピップの利益/スリッページ

double Pairmovebreakeven;

if(PairBreakeven==true){。

if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven).Pairmovebreakeven(Pairbreakevengain,Pairbreakeven);

CloseBuyOrders(Magic)。

CloseSellOrders(Magic);

}

void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){。

RefreshRates();

if(OrdersTotal()>0){。

for(int i=OrdersTotal();i>=0;i++){ オーダーセレクト(i,S,S,S,S,S)。

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){。

を返します。

}

}

}

}

int CloseBuyOrders(int Magic){ //op_sell も似たようなものです。

int total=OrdersTotal();

for(int cnt=total-1;cnt>=0;cnt--){。

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){ (オーダーマジック番号()==マジック && オーダーシンボル()==シンボル()){)

if(OrderType()==OP_BUY){

OrderClose(OrderTicket(),OrderLots(),Bid,3*mt)。

}

}

}

return(0)。

}

このコードの主な問題は、BE関数にあり、それは本当に停止または任意のアクションを移動することはありません。もしあなたが言葉で意図を述べないなら、私はあなたがここでやろうとしていることをコードから読み取ることができません。

あなたの口座にあるストップロス=注文開始 価格の注文をすべて検出し、それらをすべてクローズすることを望んでいるのですか?つまり、実際の損切り動作は他のEAによって行われるのですね?お手伝いしたいのですが、あなたが何をしたいのかがわかりません。

 
christinaLi:
このコードの主な問題はBE関数にあり、それは実際に停止または任意のアクションを移動することはありません。このコードでは、ストップロス=建値の注文をすべて検出し、すべてクローズさせたいのでしょうか?つまり、実際の損切り動作は他のEAによって行われるのですね?お手伝いしたいのですが、あなたが何をしたいのかがわかりません。

christinaLiさん

すみません、誤解を招きそうなので。

-マジックでペアの全注文を収集し、買い、売り、tp、slに関係なく、全注文からの利益をまとめたい、例:8つの買い&売り注文が あり、まとめた利益は6 pips // extern double Pairbreakevengain=6;// break evenを可能にするのに必要なpipsの利益

例:8つの売りと買いの注文がある場合、利益は6ピップス // extern double Pairbreakevengain=6;// 均衡をとるために必要なピップ数の増加 -6 ピップスの場合、すべての注文(売りと買い)slは現在の価格にストップロスを設定 -3 //extern double Pairbreakeven=3;// 均衡、注文終了、3ピップの利益/スリッページ

-Pairbreakevengainがペアのすべての注文の利益から落ちる場合 例:8つの混合買い/売り注文 利益は合計6で3に戻り、すべての注文は閉じられます。

私は単一注文のブレークイーブンのための正しい作業モジュールを持っており、私は自分でそれを変更しようとしました、私はMT4コードのスキルに欠けています、何年も前に、私はアセンブラを学びました...

このような場合、この関数を投稿すればよいのでしょうか?

助けてくれてありがとうございます。

IX

 

こんにちは、IXさん。

今、あなたが何をしようとしているのか、私は知っています。それは可能です。

しかし、買いと売りが同時に発生する可能性があるため、やや複雑です。なぜなら、「現在の価格」という場合、買いの場合はBid、売りの場合はAskを意味し、これらの価格だけが注文を決済するための現実的な価格だからです。つまり、注文のストップロスを 調整すると、どの時点でも買いと売りに差額が発生することがわかります。スプレッドが一定でない場合、注文が同時に決済されない可能性が高く、場合によっては注文の半分が決済されないこともあり得ます。

この場合、ストップロスを動かすのではなく、6pipsの利益が出た時点でメモリを起動し、3pipsになった時点で成行で決済するのが良い方法だと思います。この場合、EAが強制的に注文を決済するのであって、MT4がストップアウトさせるわけではありません。

 
christinaLi:
こんにちは、IXさん。

今、あなたが何をしようとしているのか、私は知っています。それは可能です。

しかし、買いと売りが同時に発生する可能性があるため、やや複雑です。なぜなら、「現在の価格」という場合、買いの場合はBid、売りの場合はAskを意味し、これらの価格のみが注文を決済するための現実的な価格となるからです。つまり、注文のストップロスを調整すると、どの時点でも買いと売りに差額が発生することがわかります。スプレッドが一定でない場合、注文が同時に決済されない可能性が高く、場合によっては注文の半分が決済されないこともあります。

この場合、ストップロスを動かすのではなく、6pipsの利益が出たらEAがメモリを起動し、3pipsになったら成行で全注文を決済するのが良い方法だと思います。この場合、EAが強制的に注文を決済するのであって、MT4がストップアウトさせるわけではありません。

こんにちは、christinaLiさん。

100%同意です。複雑すぎますね。おっしゃることはわかります。

- ペアとマジックごとに全ての注文を選択

- すべての注文の利益をまとめる

- 利益の合計が6pipsであれば

- スリッページがなければ、ブレークイーブンは6pipsの利益、スリッページが3pipsなら、ブレークイーブンは3pipsの利益になります。

1)メリット:全く問題がない。

2) 不利な点:全ての注文に(3pips)の余裕がない。7買6売のヘッジ注文がある場合、1つの買い注文が6pips増加すると、全ての注文がクローズされるが、3pipsの減少で6pipsに達すると(breakeven=true)、全ての注文をメモリ上にマークするオプションはあるか(6-3=3pips利益)(breakevencloseorders=true)?

7buyと6sellのヘッジ注文は、#1では6pips以上上昇することができず、常にクローズされます。

2の場合、6pipsはあくまで有効な目印であり、3pipsまで下がったら全ての注文をクローズし、6pips以上上がったら、例えば15pipsまでなら、+3pipsから15pipsまでの余地があり、結果として12pipsの利益が出ます。

スプレッドはこの時点では計算されていません!7buyと6sellsは2pipsのスプレッドで26pipsに要約されるので、1つの買い注文でブレークイーブン「0」を持たなければならず、1つの買い注文で#1で32pips、#2で29pips持たなければならない - 私は正しいですか?

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

IX

 
ixbone:
こんにちは、christinaLiさん。

私は100%同意します、それは複雑です、私はあなたが何を意味するか理解しています、多分ストップロスを移動せずにペア(バスケット)計算が解決策です、例えば。

- ペアとマジックごとにすべての注文を選択する

- すべての注文の利益をまとめる

- 利益の合計が6pipsであれば

- スリッページがなければ、ブレークイーブンは6pipsの利益、スリッページが3pipsなら、ブレークイーブンは3pipsの利益になります。

1)メリット:全く問題がない。

2) 不利な点:全ての注文に(3pips)の余裕がない。7買6売のヘッジ注文がある場合、1つの買い注文が6pips増加すると、全ての注文がクローズされるが、3pipsの減少で6pipsに達すると(breakeven=true)、全ての注文をメモリ上にマークするオプションはあるか(6-3=3pips利益)(breakevencloseorders=true)?

7buyと6sellのヘッジ注文は、#1では6pips以上上昇することができず、常にクローズされます。

2の場合、6pipsはあくまで有効な目印であり、3pipsまで下がったら全ての注文をクローズし、6pips以上上がったら、例えば15pipsまでなら、+3pipsから15pipsまでの余地があり、結果として12pipsの利益が出ます。

スプレッドはこの時点では計算されていません!7buyと6sellsは2pipsのスプレッドで26pipsに要約されるので、1つの買い注文でブレークイーブン「0」を持たなければならず、1つの買い注文で#1で32pips、#2で29pips持たなければならない - 私は正しいですか?

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

IX

私はあなたが私を誤解していると思う、あなたが望むものは正確に達成することができる、唯一のストップロスの 実際の変更はありません。今日、時間を見つけてコードを作成し、デモをしてみたいと思います。クリスティーナ

 
ixbone:
こんにちは、christinaLiさん。

私は100%同意します、それは複雑です、私はあなたが何を意味するか理解しています、多分ストップロスを移動せずにペア(バスケット)計算が解決策です、例えば。

- ペアとマジックごとにすべての注文を選択する

- すべての注文の利益をまとめる

- 利益の合計が6pipsであれば

- スリッページがなければ、ブレークイーブンは6pipsの利益、スリッページが3pipsなら、ブレークイーブンは3pipsの利益になります。

1)メリット:全く問題がない。

2) 不利な点:全ての注文に(3pips)の余裕がない。7買6売のヘッジ注文がある場合、1つの買い注文が6pips増加すると、全ての注文がクローズされるが、3pipsの減少で6pipsに達すると(breakeven=true)、全ての注文をメモリ上にマークするオプションはあるか(6-3=3pips利益)(breakevencloseorders=true)?

7buyと6sellのヘッジ注文は、#1では6pips以上上昇することができず、常にクローズされます。

2の場合、6pipsはあくまで有効な目印であり、3pipsまで下がったら全ての注文をクローズし、6pips以上上がったら、例えば15pipsまでなら、+3pipsから15pipsまでの余地があり、結果として12pipsの利益が出ます。

スプレッドはこの時点では計算されていません!7buyと6sellsは2pipsのスプレッドで26pipsに要約されるので、1つの買い注文でブレークイーブン「0」を持たなければならず、1つの買い注文で#1で32pips、#2で29pips持たなければならない - 私は正しいですか?

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

IX

実は、今、もう少し考えてみたのですが、あなたが尋ねたことは実行できません。

これはかなり興味深いことで、私は似たような関数をたくさんコーディングしてきました、ドル金額やpipsのBEインターンを計算することができますが、それらはすべて同じ注文タイプ です。買いと売りの両方ではできないんです。例えば、x個の買いがある場合(それらは異なるロットサイズであってもよい)、ある時点で、すべてのドル利益を足したものが0になり、今はBEになっているのです。次に、それらが買いであれば、3ピップの利益が欲しい場合、単純に現在のBidに3ピップを加えれば、目標価格が決まります。すべて売りであれば、現在のAskから3ピップ減算すれば、目標価格が決まります。しかし、買いと売りの両方がある場合、どうすればよいのでしょうか?

次の状況で 3 pips の利益があることをどのように定義しますか?1.4100で1ロット買い、1.4150で2ロット売りですか?

唯一できることは、ピッププロフィットではなく、ドルプロフィットを使うことだと思います。

 
christinaLi:
私はあなたが私を誤解していると思う、あなたが望むものは正確に達成することができる、ただストップロスの実際の修正はない。今日、時間を見つけてコードを作成し、デモをしてみます。クリスティーナ

クリスティーナさん、ありがとうございます。

あなたの知識にはとても感謝しています。

マイケル

 
christinaLi:
実は、今、もう少し考えてみたのですが、あなたが尋ねたことはできないのです。

これはむしろ興味深いことです。私は似たような関数をたくさんコーディングしてきましたが、ドル金額やpipsのBEインターンを計算することができますが、それらはすべて同じ注文タイプです。買いと売りの両方で行うことはできません。例えば、x個の買いがある場合(それらは異なるロットサイズであってもよい)、ある時点で、すべてのドル利益を足したものが0になり、今はBEになっているのです。次に、それらが買いであれば、3ピップの利益が欲しい場合、単純に現在のBidに3ピップを加えれば、目標価格が決まります。すべて売りであれば、現在のAskから3ピップ減算して、目標価格が決まります。しかし、買いと売りの両方がある場合、どうすればよいのでしょうか?

次の状況で 3 pips の利益があることをどのように定義しますか?1.4100で1ロット買い、1.4150で2ロット売りですか?

唯一できることは、ピッププロフィットではなく、ドルプロフィットを使用することだと思います。

Christina,

7つの買い注文と6つの売り注文 のロット合計は、通常の利益に到達するのに十分であるため、追加または減算は重要ではありません、ペアのすべての注文のBEは安全機能として働くはずです。

このヘッジ機能を使えば、50pipsのようなステップで多くのマージンを節約でき、口座は拭き取られることがありません。

売買シグナルはプライスアクションを使用しています。

ファイル:
unbenannt.png  7 kb
 
ixbone:
クリスティーナ

買い注文7枚と売り注文6枚のロット合計が通常の利益を得るのに十分であるため、追加または減算は重要ではありません。

このヘッジ機能により、50pipsのようなステップで多くのマージンを節約することができ、アカウントが消去されることはありません、もし通常の利益に達しない場合、BEはすべての注文を閉じ、新しいシグナルと最初の注文から始めるべきです。

買い/売りシグナルには、私は価格アクションを使用しています。

追加情報。

- 私は分散投資のために8-10メジャーを同時に取引しています(一部相関関係あり)、そのため0.01で10ペア、0.1で1ペアを取引する方が良いのです。

- 私は25,50,100,200,400で注文の間の私のステップを2倍にします。

1番目の順序1.5000

2番目の順序1.5025

3次.........1.050

4番目...............1.100

など

 

この関数について お手伝いしたいのですが、あなたのロジックを単純に理解することはできないようです。これは本当に戦略の他のロジックとは何の関係もありません。

単純にこれが知りたいのです。

1.4110で1ロット買い、1.4200で2ロット売りの場合。どのような価格で6pipsの利益を得たとお考えですか?