どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 316

 
artmedia70:

しばらくは生きられるでしょう。


そして、相続人ができ、すべてが元通りになる


OrdersHistoryTotal()が機能しない場合、何から手をつければよいのか、方向性を知りたいのです。でも、気にしないでください。もう一つ質問があります。 私は2つのアルパリターミナルでExpert Advisorをテストしました(デモとリアルでクォートをロードしましたが異なる結果でした)。なぜそんなことをするのか。
 
r772ra:
Zto、どこで見るか、ダウンロードしたほうがいい、知恵遅れだけど。


このスレッドでは 9ページ目にダウンロードの 方法が書かれています。
 
ALXIMIKS:


科学的な手法で見つけた

limit=Bars-counted_bars-5; を limit=Bars-counted_bars-2 に置き換えてください。

そして、すべてのリターンの前に ChartRedraw() 置く


そう、教訓はこうだ:実行エラーが発生しないように、上限を正確に設定する必要がある。)
 
ALXIMIKS:

このスレッドでは 9ページ目にダウンロードの 方法が書かれています。


ありがとうございました。見てみよう。

はい、8条が見つかりました。

 

EAからインジケータを呼び出す方法を教えてください。(完全コール、バッファではなく描画が必要)

また、インジケータを別ウィンドウに割り当てるのと同様に、チャート上でEA用のスペースを割り当てるにはどうしたらよいでしょうか。

mt4とmt5の両方に実装していただけると嬉しいのですが......どこかに移動することになっても構いません。

 
ALXIMIKS:

EAからインジケータを呼び出す方法を教えてください。(完全コール、バッファではなく描画が必要)

また、チャート上のスペースをEAに割り当てるには、インジケータを別ウィンドウに割り当てるのと同じように、どのようにすればよいのでしょうか?

mt4でもmt5でも、せめて行き先だけでも実装していただけると嬉しいです。


EAから見えるのはバッファだけで、それ以上必要な場合は、EA内のインジケータのロジックを動かすか、グローバル変数を使って転送すればいいだけです。

また、インジケータを別ウィンドウに割り当てるのと同様に、チャート上のEAにスペースを割り当てるのはどうでしょうか。

これはどうでしょう?サブウインドウにEAグラフィック?それとも ここ みたいな?

 
ALXIMIKS:

EAからインジケータを呼び出す方法を教えてください。(完全コール、バッファではなく描画が必要)

また、インジケータを別ウィンドウに割り当てるのと同様に、チャート上でEA用のスペースを割り当てるにはどうしたらよいでしょうか。

mt4でもmt5でも、せめて行き先だけでも実装していただけると嬉しいです。

図書館

 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7. ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ПРОГРАММАМИ MQL4.
 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 // 7.1. Функция удаляет эксперт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteExpert(int hwndChart); // Системный дескриптор окна графика, удаляемого эксперта.
 //===============================================================================================================================================
 // 7.2. ФУНКЦИЯ удаляет индикаторы по имени из списка загруженных индикаторов.
 void ServiceDeleteIndicatorsByName(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                                    int     nWindow,           // Номер подокна для удаления индикаторов. Если -1, то удаляются индикаторы из всех подокон.
                                    string &asIndicatorName[], // Одномерный массив с именами удаляемых индикаторов.
                                    int     nNumberName);      // Количество имён индикаторов в массиве.
 //===============================================================================================================================================
 // 7.3. Функция удаляет скрипт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteScript(int hwndChart); // Системный дескриптор окна графика, удаляемого скрипта.
 //===============================================================================================================================================
 // 7.4. Функция управляет диалоговым окном завершения скрипта и возвращает системный дескриптор диалогового окна завершения скрипта, если окно есть,
 //      иначе - NULL. Функция работает только с русской и английской локализациями.
 int ServiceDialogScript(int bInstruction); // Команда для диалогового окна завершения скрипта: TRUE - завершить скрипт, FALSE - не завершать скрипт.
 //===============================================================================================================================================
 // 7.5. Функция получает имена индикаторов из списка загруженных индикаторов.
 //      В случае успеха функция возвращает количество индикаторов в указанных подокнах параметром "nWindow", иначе ноль.
 int ServiceGetNamesIndicators(int     hwndChart,         // Системный дескриптор окна, куда прикреплен индикатор.
                               int     nWindow,           // Номер подграфика. Если -1, то считываются имена индикаторов из всех подокон.
                               string &asIndicatorName[], // Одномерный строковый массив для приёма имён индикаторов.
                                                          // Массив должен быть инициализирован разными значениями в каждой ячейке!
                                                          // Это особенность инициализации строковых массивов в MQL4.
                               int     nNumberName);      // Размер массива "asIndicatorName[]" для приёма имён индикаторов.
 //===============================================================================================================================================
 // 7.6. Функция возвращает TRUE, если окно свойств эксперта открыто, иначе - FALSE.
 bool ServiceIsPropertiesExpert(string sNameExpert); // Имя эксперта, для которого контроллируется открытие окна.
 //===============================================================================================================================================
 // 7.7. Функция открывает окно списка индикаторов. Функция ожидает открытия окна в течении 2,5 секунд. Если окно не появилось в течении этого времени,
 //      функция возвращает FALSE.
 bool ServiceListIndicators(int hwndChart); // Системный дескриптор окна графика, на котором вызывается окно списка индикаторов.
 //===============================================================================================================================================
 // 7.8. Функция загружает на указанный график пользовательский индикатор по его имени.
 void ServiceLoadCustomIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                                 string sNameIndicator, // Имя загружаемого индикатора.
                                 int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                        // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.9. Функция загружает на указанный график эксперт по его имени.
 void ServiceLoadExpert(int    hwndChart,   // Системный дескриптор окна графика, куда загружается эксперт.
                        string sNameExpert, // Имя загружаемого эксперта.
                        int    bOK);        // Подтверждение запуска эксперта, при наличии диалогового окна свойств эксперта.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.10. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,   // Системный дескриптор окна графика, куда загружается скрипт.
                        string sNameScript, // Имя загружаемого скрипта.
                        int    bOK);        // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                            // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                            // невозможности одновременной работы двух скриптов на одном графике.
                                            // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 // 7.11. Функция загружает на указанный график стандартный индикатор по его имени.
 void ServiceLoadStdIndicator(int    hwndChart,      // Системный дескриптор окна графика, куда загружается индикатор.
                              string sNameIndicator, // Имя загружаемого индикатора.
                              int    bOK);           // Подтверждение запуска индикатора, при наличии диалогового окна свойств индикатора.
                                                     // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.
 //===============================================================================================================================================
 

こんばんは。

こんな悩みがあるんです...。

EAはテスト中に一度に1つの注文を開き、適切なタイミングでそれを閉じます。

実際の口座で 動かすと、オープンオーダーがクローズされず、逆に同じ方向にもオープンしてしまい、オーダーが山積みになってしまうのです。

なぜそうなるのかはわかりません。

Expert Advisorはこのように動作します。

   if (условие на открытие продажи)          
      {                                                                                                                                          
      if (Ticket2 > 0)                                                
         {
         OrderClose(Ticket2, Lot, Bid, 2, Red);   // закрытие покупки          
         Ticket2=0;                                               
         }
      if (Ticket1 == 0)                                        
         Ticket1=OrderSend(Symbol(), OP_SELL, Lot, Bid, 2, 0, 0);   
      }
   if (условие для покупки)            
      {
      if (Ticket1 > 0)                                            
         {
         OrderClose(Ticket1, Lot, Ask, 2, Red);         // закрытие продажи        
         Ticket1=0;                                                
         }
      if (Ticket2 == 0)                                         
         Ticket2_RSI=OrderSend(Symbol(), OP_BUY, Lot, Ask, 2, 0, 0);    
      }
 
waroder:

こんばんは。

こんな悩みがあるんです...。

EAはテスト中に一度に1つの注文を開き、適切なタイミングでそれを閉じます。

実際の口座で動かすと、オープンオーダーがクローズされず、逆に同じ方向にもオープンしてしまい、オーダーが山積みになってしまうのです。

なぜそうなるのかはわかりません。

Expert Advisorはこのように動作します。

このチケットが作られるコードの断片は秘密なのでしょうか?
 
evillive:
この注文が実行されるコードの断片は秘密なのでは?


どうやるかを書いただけです。)

注文は、指標や価格が一定の水準に達したことを条件とすることができます。

テスターではこうなっていますが、本番では決済されずに上から追加で注文が出ます。