私は、ショートシグナルが発せられたときにロングポジションを閉じるような関数を作成しようとしてきました。
親切な魂が私を助けてください。
私はベースとして10p3を使用していますが、私は私たちのすべての指標を取り、バーを設定しました。
if(Open [pos 0]> = Low [pos 1] && Low [pos 2]> = Low [pos 3]){myOrderType = 2;}ロングセットアップ
if(Open [pos 0] <= High [pos 1] && High [pos 2] <= High [pos 3]){myOrderType = 1;}ショートセットアップ
どんな助けでも素晴らしいでしょう。
オープンオーダーとクローズオーダーの機能に分岐する方が簡単だと思います。あなたの条件が満たされたら、close order関数を呼んでくだ さい。私は見つけたコードの断片をつなぎ合わせてプログラムします。それが私がモジュラープログラミングを使う理由です。私に連絡して。私たちはアイデアを交換することができます。マイクbamcoti@yahoo.com
// ———————————————– ——————-
// |注文を閉じる|
// ———————————————– ——————-
void CloseOrders(int CloseType)
{
ダブルClosePrice。
if(CloseType == 1){ClosePrice = Ask;} else {ClosePrice = Bid;}
// —-
for(int i = 0; i <OrdersTotal(); i )
{
if(OrderSelect(i、SELECT_BY_POS、MODE_TRADES)== true){
if(OrderType()== CloseType && OrderSymbol()== Symbol()&& OrderMagicNumber()== MagicNumber)
OrderClose(OrderTicket()、OrderLots() 、ClosePrice、MaxSlippage、White);}
}
// —-
(0)を返します。
}
返信ありがとうございますが、終了コードのどこに行くのでしょうか。
私がこれから取ったプログラムでは、私のチェックシグナルモジュールのオープンオーダーコールのためだけのものです。あなたがモジュラーではない場合はCloseOrders(0)を入れてください。あなたのオープンオーダーラインの直前に:
{
CloseOrders(0);
距離=(高[1] – 低[3])/ポイント。
OpenOrder(1、距離);
}
// —-
(0)を返します。
私はマーチンゲールシステムを設計するのを手伝ってブレーキシステムとして(勝利の戦術としてではなく)働くようにしたいで す、そして、大きな逆転波の影響を軽減するために非常に保守的な戦略であるべきです。任意のアイデアがいただければ幸いです。
McGene4xPro …これを使用する際の問題を軽減するために…これは単なる命の恩人です…もし注文、バランス、そして未処理ロットの適切な管理を行えば…このコードは決して使われないでしょう。
私はこれを使って1度に1つの注文を閉じる(最も古い)….悪い状態が解消されるまで…..
//この商品は売り切れです。
if(OrdersTotal()> 1)
if((AccountFreeMargin()* MarginTroubleMult)<AccountMargin())
//または実際の通貨金額を希望する場合は、代わりにこれを使用してください
// if((AccountBalance() – Maxloss)> AccountEquity())
{
OrderS elect(0、SELECT_BY_POS、MODE_TRADES);
RefreshRates();
OrderClose(OrderTicket()、OrderLots()、MarketInfo(OrderSymbol()、MODE_BID)、Slippage、Pink);
睡眠(69)。
RefreshRates();
OrderClose(OrderTicket()、OrderLots()、MarketInfo(OrderSymbol()、MODE_ASK)、Slippage、Pink);
睡眠(6000)。
}
4471: https://www.mql5.com/en/forum/108496
Originally posted 2019-08-04 01:34:26.