[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 462

 
tol64:


ありがとうございます。とても分かりやすいですね。そう説明すれば誰でも理解できるはずです))

もう1つ質問です。検索すると似たようなバージョンがたくさん出てきますが、私の質問は少し違うものになります))

グラフの齟齬信頼できる?」結果を見るために、私は常にタイムフレームを再計算しなければならないのです。つまり、ログにエラーがあることを確認したら、引用アーカイブに移動して、すべてのタイムフレームを再計算するのです。テスターでは、例えば、制御点のテストを実行します。すべてOKです。それから、私などは、バーを形成しています。すべてOKです。しかし、コントロールポイントを使ったテストをもう一度行うと、ジャーナルに掲載されているチャートの間に再び食い違いが出てきます。何ですか?)))この惨状に対して、何か対策はないのでしょうか?


IMHOは、テストの唯一の2つのモデルを使用する - いずれかの "すべてのティック..." または"価格を開く ことによって..." (ボード内のこのために、新しいバーの形成のための制御を整理する必要があります) - これらは、 "信頼できる "カット - と気にしないでください...。:-)))"コントロールポイント" - その価値はない

欲しい楽器の分履歴をダウンロードして、先に進むだけ...。:-)))

 
Roman.:


IMHOでは、2つのテストモデルのみを使用します - 「すべてのティック...」または「開始価格によって...」(このためにフクロウでは、新しいバー形成の制御を整理する必要があります) - これらは「信頼できる」カットです - そしてそれを心配しないでください...。:-)))"コントロールポイント" - その価値はない

欲しい楽器の分履歴をダウンロードして、先に進むだけ...。:-)))


リンクが切れているのですが・・・。

私のやり方では、"All ticks "を使うと、永遠に待たされることになります(笑)。10年分の履歴でテストしています。EAでは、形成されたバーの上に条件とトレーリングが構築されます。しかし、すべてのダニでチェックすべき条件があります。例えば、ストップロスが発動し、資金管理システムがロットサイズを変更した場合、ロットサイズを変更するために、すべての保留中の注文をリセットする必要があります。または、条件によって必要であれば、保留中の注文を削除 するだけです。すべてがクリアでなければ成立しない))そのため、いくつかの歴史の断片をすべてのティックで比較していた私にとっては、原則的にコントロールポイントで十分なのです。一心同体。

では、このようなエラーを整理し、解消するためにはどうしたらよいのでしょうか。リンクが切れているからです))

 
tol64:


リンクが切れています...

私のやり方では、"All ticks "を使うと、永遠に待たされることになります(笑)。10年分の履歴でテストしています。EAでは、形成されたバーをもとに条件とトレーリングが設定されます。しかし、すべてのダニでチェックすべき条件があります。例えば、ストップロスが発動し、資金管理システムがロットサイズを変更した場合、ロットサイズを変更するために、すべての保留中の注文をリセットする必要があります。または、条件によって必要であれば、保留中の注文を削除するだけです。すべてがクリアでなければ成立しない))そのため、いくつかの歴史の断片をすべてのティックで比較していた私にとっては、原則的にコントロールポイントで十分なのです。一心同体。

では、このようなエラーを整理し、解消するためにはどうしたらよいのでしょうか。リンクが切れているからです))


再ダウンロード

こちらを ご覧ください。

 

こんにちは、皆さん。

コードを理解するのを助けてください。理屈はわかるのですが、どう表現したらいいのかわからないのです。どう表現したらいいのか、ちゃんとわからない。

Expert Advisorの一部をご紹介します。

total=OrdersTotal();
if(total<1)

{

while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7))
{

OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}

while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3))
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);

}
}
}
}

どうか、正しい対処法をアドバイスしてください。デニスをよろしくお願いします。

 
Roman.:


再掲載

こちらを ご覧ください。


ありがとうございます。これらのリンク先などには、私が知りたかった最も重要なことが書かれていないのです。

オンラインで端末に相場が入った場合、タイムフレームがずれないように随時再計算する必要がある。

オフラインモードでは、そのような問題はありません)。これが最初の1枚です。

次に2つ目。

for(pos = 0; pos < OrdersHistoryTotal(); pos++)
    {  OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY);
        ... работа с ордером ...  }

そうすると、ファイルへの書き込みはエラーなく行われる。つまり、ファイルの中ではすべてが意図したとおりに見えるのです。自信満々に断言された通りにやれば

for(pos = 0; pos < OrdersHistoryTotal()-1; pos++)
    {  OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY);
        ... работа с ордером ...  }

の場合、ファイルが正しく書き込まれません。個別のケースがあるのはわかるのですが))

 
延期となりました。
smartemiy:

こんにちは、親愛なる皆さん。

専門家の助けが必要だ!

Expert Advisor で、残高のドローダウンがすでに20%の場合に取引を停止するように指定し、この数字を変更できるようにするにはどうすればよいですか。

すみません、すでにフォーラムで説明されていたかもしれませんが、私が気づいていなかったかもしれません.

感謝感激です。

グッドラック・トレーディング !!!!

 
granit77:
延期となりました。


例えば、こんな風に...。

extern int MaxLoss = 90;          // Максимально допустимая просадка в процентах от баланса

...     

static datetime prevtime = 0;       // по ценам открытия
bool IsExpertFailed = false;
bool IsExpertStopped = false;

      

//+------------------------------------------------------------------+
//| Старт робота                                                     |
//+------------------------------------------------------------------+

int init()
{
   if(Time[0] == prevtime)   return(0);  //ждем нового бара
   prevtime = Time[0];                   //если появился новый бар , включаемся 

   IsExpertStopped = false;
   if (!IsTradeAllowed())
   {
      Comment("Необходимо разрешить советнику торговать");
      IsExpertStopped = true;
      return (0);
   }
      
   if (!IsTesting())
   {
      if (IsExpertEnabled())
      {
         Comment("Советник запустится следующим тиком");
      }
      else 
      {
         Comment("Отжата кнопка \"Разрешить запуск советников\"");
      }
   }
 return (0);
}
  
//+------------------------------------------------------------------+
//| Завершение работы робота                                         |
//+------------------------------------------------------------------+

int deinit()
{
   return (0);
}
  
//+------------------------------------------------------------------+
//| Обработка сигнала                                                |
//+------------------------------------------------------------------+
  
int start()    // -----------------------СТАРТ ЭКСПЕРТА--------------- 
{
  
 
   if(Time[0] == prevtime)   return(0);  //ждем нового бара
   prevtime = Time[0];                   //если появился новый бар , включаемся 

   if (IsExpertStopped)
   {
      Comment("Не удалось инициализировать советник!");
      return (0);
   }
   
   if (IsExpertFailed)
   {
      Comment("Критическая ошибка! Советник остановлен.");
      return (0);
   }
   
         
   // ------------------------------------------------Ищем наш ордер---------------------------------

   int orderType;
   for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
   {
      if (!OrderSelect(orderIndex, SELECT_BY_POS))
      {
         continue;
      }

      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }

      orderType = OrderType();
      if ((orderType != OP_BUY) && (orderType != OP_SELL))
      {
         continue;
      }
          ticket = OrderTicket( );                         // Номер ордера
          orderLots = OrderLots();                         // Lots   
          orderProfit = OrderProfit() + OrderSwap();       // Profit
          Price = OrderOpenPrice();                        // Цена открытия рыночного ордера
          SL =  OrderStopLoss();                           // Значение StopLoss ордера
          TP = OrderTakeProfit();                          // Значение TakeProfit ордера
          
             if (ticket>0)                                               // Если позиция открылась
                    {
                             while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                                 {
                                   Sleep(100);
                                 }
                                  double OpenPrice=OrderOpenPrice();
      
                              
                                  
                           if (orderType == OP_BUY) 
                              {
      
                               }
            
                            if (orderType == OP_SELL) 
                                 {
       
                                 }   
                            
                    }

      // Проверка на предельную просадку
      
      double loss = - ((orderProfit * 100.0) / AccountBalance());
      if (loss > MaxLoss)
      {
         Print ("MaxLoss");
         CloseAllOrders(MagicNumber);
         IsExpertFailed = true;
         return (0);
      }
    
              
       
}
   
 
ディレイの設定方法を再確認してください。ミリ秒単位でできると思います。スペルを忘れてしまうんです。
 
また、すべてのポジションを素早くクローズするスクリプトをどなたかご提案いただけないでしょうか。見つからないんです。コードを見てみたい。
 
FOReignEXchange:
また、すべてのポジションを素早くクローズするスクリプトをどなたかご提案いただけないでしょうか。見つからないんです。コードを見てみたい。
検索 すると5万円と出てくる。