[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 343

 
hoz:

両側には保留中の注文が積み重なっている。もし、保留中の注文のいずれかがトリガされた場合、他方で一番外側の保留中の注文が削除されます。スクリーンショットでは、買い注文がトリガーされ、一番外側のショート注文が削除された場合の様子を示しました。

1つのポジションがトリガーされた場合、それを行っています。しかし、1つだけでなく3つのトリガーが同時に発生したらどうでしょう?つまり、何らかの方法でトリガーされた保留注文の数を推定し、反対側のシグナルの保留注文を決済する必要があるのです。

どうすればいいのでしょうか?もしかしたら、この点はすでに誰かが実装しているかもしれませんね。この質問を別の枝に投稿することは決めていません。 おそらく、この点をよく理解している人にとっては、とても簡単なことでしょう。

最安値の1ポジションだけを削除する必要があれば、最安値でオープンしたポジションを探し、ループ内で削除すればよいのですが、複数のポジションがある場合はどうすればよいのでしょうか。すでにオーダーグリッドを経験されている方のご意見を伺えればと思います。

ビクターは、一番下が削除されると、同じ条件で一番下となった次の1枚も削除されます。クイックフォーユー、プログラムのメインは同じティックにならないことですが、それはそれでOK!ぜひお試しください。
 

ここで質問なのですが、MT-5テスターの速度を異なるプロセッサーでテストされた方はいらっしゃいますか?

もしそうなら、リンクを教えてください。せめて、AMDとINTELの上位プロセッサのうち、どちらが速度的に優れているか教えてください。

もちろん、ノートパソコンやスーパーコンピュータではなく、デスクトップパソコンの話です。:-)

 
DruZhban:

ここで質問なのですが、MT-5テスターの速度を異なるプロセッサーでテストされた方はいらっしゃいますか?

もしそうなら、リンクを教えてください。せめて、AMDとINTELの上位プロセッサのうち、どちらが速度的に優れているか教えてください。

もちろん、ノートパソコンやスーパーコンピュータではなく、デスクトップパソコンの話です。:-)


Everything on five is here :https://www.mql5.com/ru/forum
 
borilunad:
ビクターでは、下位のものが削除されると、次に下位となったものも同じ条件で削除されます。速さはあなたのためにある。プログラムにとって最も重要なことは、同じ刻みにならないことだが、これはOKだ!ぜひお試しください。


ボリス それは理解できる。ちょうどこんなことを考えていたんです。トリガーされた注文の値を格納する変数に 0から ループを開始し、必要な注文を見つける機能を実行し、ループの反復ごとに閉じるようにすればいいと思います。このプロシージャが今現在実行されていることをどう修正すればいいのかがわかりません。

ところで、標準の検索機能で最も極端な注文を検索し、注文のオープン 時間と価格の値を注文を閉じる関数に渡すのが良いのではないでしょうか?

 
hoz:

両側には保留中の注文が積み重なっている。もし、保留中の注文のいずれかがトリガされた場合、他方では一番外側の保留中の注文が削除されます。スクリーンショットでは、買い注文がトリガーされ、一番外側のショート注文が削除された場合の様子を示しました。

1つのポジションがトリガーされた場合、それを行っています。しかし、1つだけでなく3つのトリガーが同時に発生したらどうでしょう?つまり、何らかの方法でトリガーされた保留注文の数を推定し、反対側のシグナルの保留注文を決済する必要があるのです。

どうすればいいのでしょうか?もしかしたら、この点はすでに誰かが実装しているかもしれませんね。この質問を別の枝に投稿することは決めていません。 おそらく、この点をよく理解している人にとっては、とても簡単なことでしょう。

最安値の1ポジションだけを削除する必要があれば、最安値でオープンしたポジションを探し、ループ内で削除すればよいのですが、複数のポジションがある場合はどうすればよいのでしょうか。まあ、オーダーグリッドを扱った経験のある方のご意見を伺えれば幸いです


もし私が間違っていなければ、私はいくつかのペアの保留中の注文の助けを借りて、良い動きをしようとしています。

削除アルゴリズム :

1)オープンポジションのリストを掘り、そのスロットを書く(覚える)。

2) 設定された保留中の注文のリストを見て、ポーズのリストに一致するスライダーがあるかどうかを確認し、一致すれば-保留中の注文を削除します。

そして、もう痛みはない。

例えば、あなたが古いプログラマーであったり、コーディングについて何も知らなかったり、何でもかんでも違う方法でやるのは流行りすぎだったりするとしたら???? а ?

 
ここでソースの指標は、リアルタイムで各インジケータの価格に等しい値(コメントを通じて、例えば)(数字で)出力にお役立てください(私はicustomを知っているが、私はあなたが出力されるように指定する必要があるパラメータを理解できない正確な値、その後出力0、その後数は2メートルより大きいです)。
ファイル:
zigzag.zip  4 kb
 
DruZhban:

ここで質問なのですが、MT-5テスターの速度を異なるプロセッサーでテストされた方はいらっしゃいますか?

もしそうなら、リンクを教えてください。せめて、AMDとINTELの上位プロセッサのうち、どちらが速度的に優れているか教えてください。

もちろん、ノートパソコンやスーパーコンピュータではなく、デスクトップパソコンの話です。:-)



5では、クラウドをテストに使い、たとえマルチコアで高速なプロセッサであっても、そのことは忘れてください。本当に何倍もスピードアップします。でも、1円でも払う必要があります。実は、ここでもいつの間にか議論が始まっていて
 

皆さん、ごきげんよう。

私の質問は簡単なようですが、すべての記事を掘り下げましたが、答えを見つけることができませんでした -return(-1)演算 子はどのように機能するのでしょうか?どこに制御を渡すのか?例えばこのコードでは

int start()
{
    //---- Запоминаем значения индикатора для дальнейшего анализа
    //---- Обратите внимание - используем 1-й и 2-й бары. Это даёт задержку в 1 бар 
    //---- (т.е. сигнал появится позже), но защищает от многочисленных открытий и закрытий
    //---- позиций в течении бара
    double MACD_1 = iMACD( Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1 );
    double MACD_2 = iMACD( Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 2 );
 
    int _GetLastError = 0, _OrdersTotal = OrdersTotal();
    //---- перебираем все открытые позиции
    for ( int z = _OrdersTotal - 1; z >= 0; z -- )
    {
        //---- если при выборе позиции возникла ошибка, переходим к следующей
        if ( !OrderSelect( z, SELECT_BY_POS ) )
        {
            _GetLastError = GetLastError();
            Print( "OrderSelect( ", z, ", SELECT_BY_POS ) - Error #", _GetLastError );
            continue;
        }
 
        //---- если позиция открыта не по текущему инструменту, пропускаем её
        if ( OrderSymbol() != Symbol() ) continue;
 
        //---- если MagicNumber не равен _MagicNumber, пропускаем эту позицию
        if ( OrderMagicNumber() != _MagicNumber ) continue;
 
        //---- если открыта БАЙ-позиция,
        if ( OrderType() == OP_BUY )
        {
            //---- если МАКД пересёк 0-ю линию вниз,
            if ( NormalizeDouble( MACD_1, Digits + 1 ) <  0.0 && 
                  NormalizeDouble( MACD_2, Digits + 1 ) >= 0.0    )
            {
                //---- закрываем позицию
                if ( !OrderClose( OrderTicket(), OrderLots(), Bid, 5, Green ) )
                {
                    _GetLastError = GetLastError();
                    Alert( "Ошибка OrderClose № ", _GetLastError );
                    return(-1);
                }
            }
            //---- если сигнал не изменился, выходим - пока рано открывать новую позицию 

else return(0);

ゼロを括弧で囲んだ場合と括弧をつけない場合では、すべてがクリアに見える。しかし、(-1)はどうでしょう。

ご返信ありがとうございます。:)

 
hoz:


ボリス なるほどね。ちょうどこんなことを考えていたんです。0から トリガーされた注文の値を格納する変数まで ループし、ループの反復ごとに必要な注文を検索して閉じる関数を実行すればいいと思います。しかし、現在このプロシージャが実行されていることをどのように修正すればよいのか、よくわかりません。

ついでに言うと、標準の検索機能で一番極端な注文を検索して、建値と価格を関数に渡して注文を決済するのがいいんですよね?

ビクター、保留中の注文が削除されたとき、それはすでに履歴に残っていて、別のポジションが開かれたとき、別の保留中の注文も同じ条件で削除されるということです、持っているポジションをチェックしているのですからそして、その仕組みは、過去ログに目を通してみてくださいそうすれば、それが正しいのか間違っているのかがわかるはずです
 
皆さん、こんにちは。これは深刻で緊急の問題で、よく言われるようにインターネットをくまなく調べました......。久々にMT4を使おうと思い、使い始めて3日目です。しばらく使ってみたが、初めてのことで、何が何だかわからないという感じだった。と思っていたのですが、突然MTに行くと、新しいシステムで4つのH4チャートが表示され、間違った価格を見て、StartFX 2と比較し、タイムフレームのH1とD1を開いて待つ...というものでした。1時間待っても年単位で更新されるのですが、それがされません。"まあ、再インストールして終わり "と言うなら、"クソ食らえ "と言ってやる。"だから、どこのサイトかわからないソフトウェア更新のインジケータをダウンロードしてください"-あなたが尋ねると、私はあなたに "ファック2回 "と言うでしょう。私は本当にお金を作り続けたいし、コンピュータのヘルプを1で絞め、その後を見ます :-)