[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 459

 
kara100 >>:

Здравствуйте, все! Подскажите, плз, как вытащить из индикатора +МР, сами значения уровней для использования в советнике?

ObjectGet()を使ってみてください。線に注目 DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false);

 
Necron писал(а)>>

ObjectGet()を使ってみてください。DrawVLine(onp + "hz", hz, Red, 1, STYLE_DOT, false)の線に注目してください。

感謝

 
Andrew_Filinsky >>:

Здравствуйте. Я начинающий трейдер, придумал торговую стратегию, написал советника, при его работе на демосчёте возникла следующая проблема:

Советник иногда зависает во время выполнения операции OrderSend(). Выглядит это так: в вечером запустил советник, утром обнаруживаю, что советник завис в 3 часа ночи. В логе присутствует сообщение "Выполнение команды началось ...", сообщения "... Выполнение команды закончилось" нет. Терминал MT4 работает, получение котировок происходит, котировки отображаются на графике инструмента, на котором работает советник, советник висит. Ситуация возникает неоднократно, после перезапуска терминала ошибка может повториться через несколько часов.

Вопросы:

В чём причина зависания советника? Как устранить зависание?

Вот фрагмент соответствующего кода:

Дополнительная информация: использую GPRS-модем, включён круглосуточно, обрывов связи с потерей коннекта в течение работы советника не наблюдается, программ для анализа сетевого трафика специально не устанавливал, работает только стандартный брандмауэр WinXP.

Поискал по форуму, подходящего описания такой проблемы, её причин и способов их устранения не нашёл.

( Такое ощущение, что проблема возникла на ровном месте. Вообще не представляю, как такие фундаментальные вещи могут не работать )

3000スリップ(3秒)の頻度でエラーが発生したらリフレッシュするループスクリプトをEAと並行して実行してみてください。

通常のリクエストで解決できる問題だと思います(ティックに関係なく)。

ティックがあればリフレッシュしますが、ティックがあればなぜリフレッシュするのでしょうか?

ということで、ループしたスクリプトしか役に立ちません。

int start()
{//+----------------------------------------------+
 while(!IsStopped())
   {if(!IsConnected())RefreshRates();
    Sleep(3000);
   }
return(0);
}//+----------------------------------------------+

動作確認せずに直接Mozillaで書きました)。

 
Rover82 >>:

вот.

Check, my indicator is not displayed (there is a .csv required).ラベルの設定はtrueにする必要があります

ファイル:
optlev_1.mq4  15 kb
 
Necron >>:

Проверьте, у меня не отображается индикатор (там .csv нужен какой-то). В настройках labels должно быть true

Necron さん、ありがとうございます。そうですね......インジケーター自体に外部データが必要なのは分かっているのですが......。

 
ポジションを閉じる のを手伝ってください!!!3つのBUY注文があり、1つのBUYポジションをクローズするシグナルが出て、最後に開いた注文はクローズされていますが、最初の注文(一番早いもの)をクローズする必要があります。 Thanks lot!
 

MT4では、各通貨ペアで水平に(異なる時間枠で)2つのウィンドウが開かれています。

- リンクさせる方法はないのでしょうか?- 一つを押すと、二つ目が一緒に上がってしまうんです。

(ウィンドウをリンクさせるプログラムがあるらしいが、MTで動くかどうかは知らない)。

 
splxgf писал(а)>>

ADSLや他の回線に切り替えた方が良い。gprsでの動作が全く見えないんだが。

OrderSend()中にAdvisorがハングアップすることがある ...

...GPRSモデムを使用しており、24時間オンになっています。EA作業中に接続が途切れることはありません。ネットワークトラフィックを分析するソフトウェアはインストールしておらず、WinXP標準のファイアウォールのみです。

[実際、1日10MBのトラフィックと、gprsクラス10の帯域幅の50分の1である毎秒0.8(sic!)キロビットで、主要6通貨ペアのオンライン作業に十分対応できるのです。コネクションのドロップがないこと、ブローカーとのパケット送受信の遅延が少ないことが重要である。GPRS経由の電話からは、帯域は十分でしたが、途切れることがありました。現在、固定GPRS/EDGEモデムによる接続は24時間中断することなく良好で、MT4端末の帯域幅はさらに向上しています。[歌詞の余談はここまで】。]

実験的に原因を突き止め、修正しました。原因はWinXPのファイアウォールで、MT端末からDCサーバーへのデータ送信に干渉し、データを歪めていたようなのです。しかも面白いことに、ポジションのオープン、クローズ、修正は手動で行っていたのに、Expert Advisorのスクリプトは......パッと見で分かる。WinXPのファイアウォールの例外リストにMetaTraderを追加したら、ハングアップの問題が解決しました。

皆さん、潜在的な力を貸していただきありがとうございます。

 
Советник иногда зависает во время выполнения операции OrderSend().

Urain さんが 書き込みました :>>。

EAと並行して、非コミット時にリフレッシュするループスクリプトを3000slip(3秒)の頻度で動かしてみてください。通常のリクエストで解決できる問題だと思います(ティックに関係なく)。

ありがとうございます。もう原因も解決策もわかりました。実際、接続はどこにも行っておらず、数日前から途切れることなく安定しています。WinXPのファイアウォールが原因 であることが判明し、その例外リストにMetaEditorを追加することで解決しました。

 
みなさん、こんばんは。どなたか、注文をクローズして、最初の注文を選択してクローズする方法を教えてください。
while(true)                                  // Цикл закрытия орд.
     {
      if ( Tip==0 && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         
         Ans=OrderClose( Ticket, Lot,Bid,2);      // Закрытие Buy
         if ( Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }

PLEASE HELP!!!