//--- при таком методе мы будет сюда попадать на каждом тике.for(int i=PositionsTotal()-1;i>=0;i--)
if(m_position.SelectByIndex(i))
if(m_position.Symbol()==Symbol() && m_position.Magic()==m_magic)
{
//--- TrailingStop -> подтягивание StopLoss у ПРИБЫЛЬНОЙ позицииif(m_position.PositionType()==POSITION_TYPE_BUY)
{
//--- когда у позиции ещё нет StopLossif(m_position.StopLoss()==0)
{
//--- пока StopLoss равен 0.0, TrailingStep не учитываемif(m_symbol.Bid()-ExtTrailingStop>m_position.PriceOpen())
{
//--- модификация позиции
m_trade.PositionModify(m_position.Ticket(),m_position.PriceOpen(),0.0);
}
}
2022.02.2613:56:48.489 test (NZDUSD,H4) 0000000891001213131313001302022.02.2613:56:48.489 test (NZDUSD,H4) 12345678910111213131313131313132022.02.2613:56:48.489 test (NZDUSD,H4) 123456711
期待される。
2022.02.2613:56:48.489 test (NZDUSD,H4) 0000000891001213131313001302022.02.2613:56:48.489 test (NZDUSD,H4) 12345678910111213131313131313132022.02.2613:56:48.489 test (NZDUSD,H4) 123456711131313
int k=0; // объявляем до цикла - чтобы использовать послеfor(int i=0; i<ArraySize(ArrayI); i++) // после предыдущего кода (1) размеры ArrayI и ArrayJ равныif(ArrayI[i]!=ArrayJ[i])
{
ArrayJ[k++]=ArrayI[i];
}
ArrayResize(ArrayJ,k);
Alexeyさん、ありがとうございます!まずはこのスレッドで回答を待ちますが、何もなければエラー、バグ、質問の スレッドに移動します。
敬具 ウラジミール
このスレッドでは、開発者からの回答は得られないでしょう。もし、エラーを発見し、それが本当にエラーであることを確認したら、アレクセイが声優を務めるブランチに報告してください。私たちも人間であり、時間がないこともあります。
このスレッドでは、開発者からの回答は得られそうにありません。もしエラーを見つけたら、それが本当にエラーであることを確認し、Alexeyのブランチに報告してください。この際、モデレーターに行動を期待する必要はありません。私たちも人間であり、時間がないのです。
アルテムさん、こんにちは。
すべてがクリアになる。
敬具 ウラジミール
こんにちは!!!!
ここにグリッドアドバイザーのための2つの関数である最初の関数は、アカウント負け注文の部分的な閉鎖を考慮して、利益の計算です。
2つ目の機能は、負け注文を部分的に決済するクロージングオーダーです。
負け注文の部分決済を考慮しながらグリッドオーダーを決済すると、決済が必要な一部のロットを大きい方に丸めた結果、損失が発生します。
問題は、この2つの関数を使って、負け注文を計算する関数というか、決済する注文の一部を書くことができるかということです。
もしそうなら、書くのを手伝ってください
ありがとうございました。
こんにちは!!!!
もしそうなら、書くのを手伝ってください。
タイミングが悪いんです。
書いてあげるってこと?
今はいい時代ではない。
あなたのために書くということですか?
自分を破らないように アレキサンダー
初歩的なことで迷っている。
トロールポーズをどのように整理するか - co-directed、なぜか1つのポーズをトロールする、つまり、トロールしない。MT5
私は、HEDGE市場のポジションを持つトロールのためのポジションの列挙として、単純なコードセクションを使用することができます - ありがとうございました。
問題は解決しました。ウラジーミル・カルプトフさん、改めておめでとうございます!!!!
トロールで!
https://www.mql5.com/ru/code/17263
重要なコツは、ループ内のインデックスを見て、それをチケットオプションで修正することです!!!
ArrayJから、ArrayIの要素と 同じインデックスと値を持つ要素をすべてぶつける、という簡単な作業です。
キー文字列がハイライト表示されます。結果
期待される。
ArrayJは動的です、何か問題があるようです...。でも、静止画もいらないんです。
心が折れました。どうしたんだ?それとも、昔の歌に相当するのだろうか。
https://www.mql5.com/ru/forum/1111/page3141#comment_27152680
и
https://www.mql5.com/ru/forum/1111/page3142#comment_27371998
は、名前付き定数について?
キー文字列がハイライト表示されます。結果
期待される。
ArrayJは動的です、何か問題があるようです...。でも、静止画もいらないんです。
1.ArrayResizeはループの外に出した方が良い。
2.ArrayRemove は、配列の要素を「空」にするのではなく、後続の要素をその場所に「移動」させるのです。したがって、後続のインデックスの要素のマッチングが崩れる。
1.ArrayResizeはループの外に移動させるべき
2.ArrayRemove は、配列の要素を「空」にするのではなく、後続の要素をその場所に「移動」させる。したがって、後続のインデックスの要素のマッチングが崩れる。
2は間違いないのですが、わかりやすくするために間隔を置いただけです。また、Helpには静的配列について、「この関数が固定サイズの配列に使われた場合、配列のサイズ自体は変更されません:残りの「末尾」が物理的に 開始位置にコピー されます。" ヘルプの例では固定サイズの配列も使っていますが、私は動的なものを使っています。
Re 1.実際のタスクでは、ArrayJやArrayIのサイズも、ましてやCommonArrayのサイズも一致しないので、事前にわからないから、ループの外に出すことはできない。
また、上記の例のように、エレメントのシャッフルが途中で中断されない例もありますね。
結果は上々です。
でも、そのバリアントがないとダメなんです。どうやら、右側の末尾に同じ値(前の記事を参照)を持つ要素がある場合に、ヒッチが起こるようです - これは、私が上で言及した問題と似ています。
2については質問がないので、わかりやすくするために間隔を置きました。また、Helpには静的配列について、「固定サイズの配列に対してこの関数を使用した場合、配列自体のサイズは変更されません:残りの「末尾」を 開始位置に物理的にコピー します。" ヘルプの例では固定サイズの配列も使っていますが、私は動的なものを使っています。
Re 1.実際のタスクでは、ArrayJやArrayIのサイズも、ましてやCommonArrayのサイズも一致しないので、事前にわからないから、ループの外に置くことはできない。
また、上記の例のように、エレメントのシャッフルが途中で中断されない例もありますね。
結果は上々です。
でも、そのバリアントがないとダメなんです。右側の末尾に同じ値を持つ要素がある場合、どうやらヒッチが起こるようです(前回の記事参照)-これは私が上で言及した問題と似ています。
1.私が示した方法で、ループから取り出すことができますし、そうすべきです。ArrayIのサイズがループの中で変化しない限り。
2.すると、こんな感じになります。