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

 
Figar0 >> :

>> すべてのコードを外に出して、ここではまだストッパーの臭いがしない......。

ストッパーではなく、価格がMAにタッチしたらすぐにポジションをクローズすることです

 
Novice писал(а)>>

ストップロットではなく、価格がMAにタッチしたらすぐにポジションをクローズすることです

そうであってほしい、停車駅のことを書いたのはあなたなのだから...)しかし、なぜコードがないと動かないのかがわからない。 上記の作品はあまり参考にならない。

 
Figar0 >> :

そうそう、ストッパーのことを書いたのはあなたでしたね...)。同じように、コードがなければ、なぜ動かないのか理解できないし、掲載されている作品は全く参考にならない。

私の表現が非常に間違っていたようです、申し訳ありません、MA自体がストップロスの役割を果たすべきだという意味です。

>>:

...... MAにタッチすると同時にポジションをクローズしました。


しかも、そのコードは極めて原始的なものです。


         Ticket=OrderTicket();                 
         Tip   =OrderType();                   
         Lot   =OrderLots();                   

    MA2C=iMA(NULL,0, Period_MA2,0,MODE_SMA,PRICE_CLOSE,0); //Есть две MA с разным периодом.
    MA3C=iMA(NULL,0, Period_MA3,0,MODE_SMA,PRICE_CLOSE,0); //И вот с такими параметрами.
     
     //Так же есть условия, при которых по идее должны срабатывать 
     // функции закрытия ордеров.
     
     RefreshRates();                  
    if ( Tip==0 && Bid== MA2C)        //Обозначение типа ордера и условия закрытия
     {
      CloseBuy=true;                              // Закрыть Buy
     }
     RefreshRates();
    if ( Tip==0 && Bid== MA3C)
     {
      CloseBuy=true;                              // Закрыть Buy
     }
     RefreshRates();
    if ( Tip==1 && Ask== MA2C)
     {
      CloseSell=true;                               // Закрыть Sell
     }
     RefreshRates();
    if ( Tip==1 && Ask== MA3C)
     {
      CloseSell=true;                               // Закрыть Sell
     }

        // Закрытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
      if ( Tip==0 && CloseBuy==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         ALERT=OrderClose( Ticket, Lot,Bid,3,Blue);      // Закрытие Buy
         if ( ALERT==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
        if ( Tip==1 && CloseSell==true)                // Открыт ордер Sell..
        {                                       // и есть критерий закр
         Alert("Попытка закрыть Sell ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         ALERT=OrderClose( Ticket, Lot,Ask,3,Red);      // Закрытие Sell
         if ( ALERT==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Sell ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
      break;                                    // Выход из while
     }

すでに4条件を2条件に変更できると考えています。


     RefreshRates();
    if ( Tip==0 && Bid== MA2C || Tip==0 && Bid== MA3C)
     {
      CloseBuy=true;                              // Критерий закр. Buy
     }
     RefreshRates();
    if ( Tip==1 && Ask== MA2C || Tip==1 && Ask== MA3C)
     {
      CloseSell=true;                               // Критерий закр. Sell
     }
 
     RefreshRates();
    if ( Tip==0 && (Bid== MA2C  || Bid== MA3C))
     {
      CloseBuy=true;                              // Критерий закр. Buy
     }
     RefreshRates();
    if ( Tip==1 && (Ask== MA2C ||  Ask== MA3C))
     {
      CloseSell=true;                               // Критерий закр. Sell
     }

じゃあ、こんな感じ)とにかく、妄想作品です!ワゴンはビッド価格で作られているのに、そんな風に比べるなんて...。どうだろう。

あなたのコードで何か、OrderSelectが 表示されない?

 

標準的な、教科書に載っているようなものです。


Symb=Symbol();                               // Название фин.инстр.
   Total=0;                                     // Количество ордеров
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect( i-1, SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!= Symb)continue;      // Не наш фин. инструм
         if (OrderType()>1)                     // Попался отложенный
           {
            Alert("Обнаружен отложенный ордер. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Total++;                               // Счётчик рыночн. орд
         if ( Total>1)                           // Не более одного орд
           {
            Alert("Несколько рыночных ордеров. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Ticket=OrderTicket();                  // Номер выбранн. орд.
         Tip   =OrderType();                    // Тип выбранного орд.
         Lot   =OrderLots();                    // Количество лотов
        }

//И далее как выше...
可視化モードでテストすると、注文が MA でクローズしないので、これが原理的に可能かどうか理解することが重要です。
 
Novice писал(а)>>

可視化モードでのテストでは、MAで注文が決済されないので、原理的に可能かどうか知りたいです

原理的には可能です。システムで可能なオーダーは1つだけなのでしょうか?

Bid/Ask価格とMA値が等しくなるように正規化してみてください、それが必要です...

Expert Advisorを使用してはいかがでしょうか?私ならとっくに訂正しています。

 
Figar0 >> :

原理的には可能です。システムで可能なオーダーは1つだけなのでしょうか?

Bid/Ask価格とMA値が等しくなるように正規 化してみてください、それが必要です...

Expert Advisorを使用してはいかがでしょうか?私なら、とっくに訂正しています。

それからは、頭がクラクラしてきました...。

いいえ)他の銀河系と同じように聖杯に、TCを実現し改善する試みだけです。


すべてのコードを投稿に入れることができなかったので、添付します。

ファイル:
g.ei.vn.gl..mq4  12 kb
 
Novice писал(а)>>

それからは、頭がクラクラしてきました...。

No) グレイルは別の銀河のようなもので、TCを実装し改善するための試みに過ぎません。

この投稿にすべてのコードを入れることができなかったので、ここに貼り付けています。

でも、原理的にはなんとかなるんです。

ロットの増加を取り除いたことくらいです。受注は終了していないんじゃなかったっけ?

 
MAでクローズしない、まさに価格がタッチした時にクローズする。MA2CとMA3Cについて。ラノベの件ですが、そうですね、まだ完成していないんです。


では、どのように......?

Figar0 >> :

...等価比較の際、Bid/Ask 価格と MA 値を正規化する...

ただ、ノーマライゼーションの方法がよくわからないのですが......。 NormalizeDouble(Ask、Digits) ?

 

問題は局所的で、やはりMA価格に到達した時点で注文をクローズさせるにはどうしたらいいかということですね。


正規化した後、なぜかコンパイル時にエラーが出てしまい、全く触っていない部分で