//+------------------------------------------------------------------+//| Check for long position closing |//+------------------------------------------------------------------+bool ProfitOnTick(void)
{
bool res=false;
double PROFIT_BUY=0.00;
double PROFIT_SELL=0.00;
for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of open positions
{
string position_GetSymbol=PositionGetSymbol(i); // GetSymbol позицииif(position_GetSymbol==m_symbol.Name())
{
if(m_position.PositionType()==POSITION_TYPE_BUY)
{
PROFIT_BUY=PROFIT_BUY+PositionGetDouble(POSITION_PROFIT);
}
else
{
PROFIT_SELL=PROFIT_SELL+PositionGetDouble(POSITION_PROFIT);
}
}
}
for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of current positionsif(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==m_symbol.Name())
{
if(m_position.PositionType()==POSITION_TYPE_BUY)
{
if(PROFIT_BUY<-TargetStopLoss || PROFIT_BUY>=TargetTakeProfit) // if the profit
ClosePosition(m_position.Symbol()); // close a position by the specified symbo
}
res=true;
}
for(int u=PositionsTotal()-1; u>=0; u--) // returns the number of current positionsif(m_position.SelectByIndex(u)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==m_symbol.Name())
{
if(m_position.PositionType()==POSITION_TYPE_SELL)
{
if(PROFIT_SELL<-TargetStopLoss || PROFIT_SELL>=TargetTakeProfit) // if the profit
ClosePosition(m_position.Symbol()); // close a position by the specified symbo
}
res=true;
}
//--- resultreturn(res);
}
//+------------------------------------------------------------------+
実際の口座で試したところ、2つのオープンポジション からわずかな利益が欲しかった。 設定で160と入力したので、一番大きなマイナスポジションを決済してくれるのかと思ったら、そうではなく、決済されてしまった。
一番大きく負けているポジションを決済するのかと思ったらそうではなく、160の利益が出た方を決済し、両方のポジションを決済してしまい、カモにされてしまいました。最初のオープンポジションから、マイナスを足して計算しなければならないことがわかりました。
#property version "1.017"
この機能の正しい使い方がわかったのは、5日目です。今、それはすべての買いまたは売りの1つのペアの総利益に閉じます。
悪くない機能だと思います。あちこちで、利益を取って、どうでもよくなっている
私は解決するためにコードを持っている - すべてがそのようにうまく動作するように見える
この機能を1つの端末で動作させるためのコードが作成できない。4端子で試してみたい、何が出てくるかわからないけど
この機能を実現するためのコードが作れない 1つの端末で。4端子で試してみたい、何が出てくるかわからないけど
これら4つの端子はすべて、何の結果も得られなかった。そして、一般的には、ロスからこの機能 - コードは書けません。
しかし、私はとっくの昔に、このようなロジックを、ホリゾンタルラインだけで作っています。あとは、何をもってしてロットを倍増させるかを考えるだけです。
上部に水平線を設定しました
下部に水平線を設定する
価格がこれらの線に触れると同時にポジションがオープンされ、水平線が設定されます。
これら
そして、これらの水平線から位置を開き、最初の水平線を置くでしょう - 価格はそれらに到達することができるまで、それは繰り返されます。
図2
ここで閉じている - 設定で設定、利益
---------------------------------------------
ペアで200の利益に達したとき、それはポジションを閉じます。
200に達し、買いまたは売りのすべての位置を閉じた - あなたは両方向に開くことができ、それぞれの側は、独自の、利益または損失を持っているので。
- 水平線に到達すると、ポジションが開かれますが、手動で移動できます。
この機能は、損失から、ロットを増加させる。
この人に感謝https://www.mql5.com/ru/forum/107406#comment_3018721
イゴール・キム
#property version "1.018"
通貨単位での損失のロットサイズを大きくする可能性を追加しました。
--------------------------------
アクションのロットアップ。設定で金額を拾うだけで、4段階 - 最後の金額、2000以上はロット0.08を 開きます。
これらの行から画像では、オープンポジション、また、これらの行をトロールの設定で設定することができます
0 の代わりに set distance= 0;// Obj:トレーリングストップ(価格から対象までの距離、単位:ピップス)
----------------------------ВАЖНО!
シグナルが発生したら、バーからさらにバウンドするようにラインを設定しないと、何度もシグナルが発生することになります。
以下は、ホリゾンタルラインをトローリングして、コマンドをトリガーしたときに同じバーにバウンスバックするときの状況です。
----------------------------------
水平線が繰り返されないように、0 = 20 と する// Obj: グリッドのステップ、points("0" -> false)
がゼロの場合、コマンドを実行して削除されます。
この機能は、損失から、ロットを増加させる。
この人に感謝https://www.mql5.com/ru/forum/107406#comment_3018721
イゴール・キム
今日、この機能を損切り用の水平線でテストしました(価格が間違った方向に行き、途中で水平線に出会うと、そこからポジションを開き、線がさらに遠くに飛び、所定の距離だけ、損失が増え、次に水平線に当たると、ロットが増えて開くことになります)。
唖然としています。- このロジックは、すべてをプラスに引っ張ります。こんな奇跡、いくらで売れるんだろう!
-------------------------------------------------------------- これは別の例で、価格が私に不利になるものです。
仕組みを理解するために
ユーティリティにはボタン(BUYとSELL)があり、ホリゾンタルラインが 行うすべてのコマンドを実行します - テスターで調べれば、どのように動作するかわかります。
ボタンの設定 ----------------
ホリゾンタルラインの設定 --------------------
以下は、実行可能なコマンドです --------------------------------。
プロフィット機能
------------ 利益は共通ではありません - 買いは独自の利益を持っている 売りは独自の利益を持っている(例えば、あなたはそれらの各々は100を取ることはありませんが、100を獲得したい設定で 購入し、販売で 別のものを開いて2つの位置を持っています)また、各ペアは別の利益を持って、それぞれが100を(あなたが複数のペアで作業している場合 - 各ペアは、別々にユーティリティを設定する必要があります)取る必要が あります。
Важно!!! правильно настроить , открытии лота (До убытка валюте)
ペアの損失は、トータル損失と(買いと売り、それぞれに損失がある)の2つです。
ここでは、sell yourからbuy your lossで計算します。
わずかな補正 -ホリゾンタルラインが 信号に対してより速く反応するようにします。
価格が水平線に触れ、交差したが、トリガーされなかったという状況があった。
#property version "1.019"
新しい機能を試してみる .カレンダーが信号を出し、その信号からコマンドを選択することができる
他にカレンダーに必要なコマンドは何か、まだ考える必要がありますね。
これ、もう持ってるんですよ。
画像はユーティリティを設定し、これは画像1です。2番目は実行されたコマンド(与えられた距離で水平線)になります
今日、この機能を損切り用の水平線重複機能でテストしてみました(価格が間違った方向に行き、途中で水平線に出会い、そこからポジションを開き、線がさらに跳ね返されると、所定の距離だけ、損失が増え、次に水平線に触れると、ロットが増えて開くことになります)。
唖然としています。- このロジックは、すべてをプラスに引っ張ります。そんな奇跡の 一品、いくらで売れるんだろう!
"ハローマーチン "だ:-)それがドローダウンによる出来高の増加です。説明から判断すると、グリッドでもある。
これは悪いことではありませんが、あなたは自分自身に正直でなければならない - それは小さな "市場は私に対して行った "から引き出しますが、預金を失うことのリスクはそこに大きいです。