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

 

001はこう答えた。

私が理解する限り、ここが比較の対象になっています。もし私が間違っていたら、訂正してもらいましょう。

if(
(sar10>Open[0])&&// SAR 1 // 始値との比較
(sar11>Close[0+1])&&// 分値と終値との 比較
(sar50>)Open[0])&&// SAR 5
(sar51>Close[0+1])&&// 分
(sar150>Open[0])&&// SAR 15
(sar151>Close[0+1])&&// 分
(sar152<Close[0+2])// トレンド開始

)

が、それだけではありません。具体的には、15分足チャートにExpert Advisorを装着し、15分、5分、1分の時間間隔でSARを価格と比較する......というものです。Open[0] Close[0+2] は始値 終値です。下のタイムフレームのExpert Advisorに付いている、チャートの下を比較したいのですが!

よろしくお願いします...

 
boris.45:

マーケットウォッチウィンドウにこのペアが表示されていますか?

No new data for symbol "というメッセージが表示されたら、すべてのTimeframeを再計算するように指示されるので、試してみてください。私はいつもそうしています。データ読み込みウィンドウ(F2)を開き、必要なシンボルをダブルクリックし、M1をダブルクリックして、すべてのメッセージがあるにもかかわらず、データを読み込みます。そして、M1、M5、M15...と、それぞれのTFに対して行う。月...

通常、それは助け...と戸惑うこともありますが...。:)

 
igrok2008:

しかし、それだけではありません。具体的には、15分足チャートにExpert Advisorを装着し、15分、5分、1分の時間間隔でSARを価格と比較する......というものです。Open[0] Close[0+2] は始値 終値です。下のタイムフレームのExpert Advisorに付いている、チャートの下を比較したいのですが!

よろしくお願いします...

   iSAR(Symbol(),PERIOD_M1, step,maximum,1);  // Данные параболика для текущего символа с периода М1
   iSAR(Symbol(),PERIOD_M5, step,maximum,1);  // Данные параболика для текущего символа с периода M5
   iSAR(Symbol(),PERIOD_M15,step,maximum,1);  // Данные параболика для текущего символа с периода М15
   iSAR(Symbol(),PERIOD_M30,step,maximum,1);  // Данные параболика для текущего символа с периода М30

   iOpen (Symbol(),PERIOD_M1,0);     // цена открытия минутной свечи текущего (нулевого) бара
   iClose(Symbol(),PERIOD_M1,0);     // цена закрытия минутной свечи текущего (нулевого) бара
   iOpen (Symbol(),PERIOD_M1,1);     // цена открытия минутной свечи предыдущего (первого) бара
   iClose(Symbol(),PERIOD_M1,1);     // цена закрытия минутной свечи предыдущего (первого) бара
   iOpen (Symbol(),PERIOD_M5,0);     // цена открытия пятиминутной свечи текущего бара
   iClose(Symbol(),PERIOD_M5,0);     // цена закрытия пятиминутной свечи текущего бара

例えるなら、自分でやってみろと...。

 
artmedia70:

マーケットウォッチウィンドウにこのペアが表示されていますか?

No new data for symbol "というメッセージが表示されたら、すべてのTimeframeを再計算するように指示されるので、試してみてください。私はいつもそうしています。データ読み込みウィンドウ(F2)を開き、必要なシンボルをダブルクリックし、M1をダブルクリックして、すべてのメッセージがあるにもかかわらず、データを読み込みます。そして、M1、M5、M15...と、それぞれのTFに対して行う。月...

通常、それは助け...と戸惑うこともありますが...。:)

 
EAが注文をクローズせず(コードで指定されているにもかかわらず)、テスターがこれらのエラーを出す理由は何でしょうか?
 
ViktorF:
EAが注文をクローズしない場合(コードで指定されているにもかかわらず)、テスターでこのようなエラーが出るのはなぜでしょうか?
これはコード上正しくないので、EAが閉じない理由になっています。そして、これらは無害なエラーであり、引用符を更新することが望まれる
 
artmedia70:

例えるなら、自分でやってみろと...。

ご確認ください!!!!!!

//+------------------------------------------------------------------+
//|                                 expert SAR_1_5_15 min primer.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double    Lots=0.01;
extern int       StopLoss=300;
extern int       TakeProfit=150;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderCloseTime()>=Time[0]&&OrderType()==Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения Parabolic,на 0-ом, 1-ом и 2-м барах для 1,5-ти,15-ти минутн. графиков
    double sar10 = iSAR(NULL,1,0.02,0.2,0);
    double sar11 = iSAR(NULL,1,0.02,0.2,1);
    double sar50 = iSAR(NULL,5,0.02,0.2,0);
    double sar51 = iSAR(NULL,5,0.02,0.2,1);
    double sar150 = iSAR(NULL,15,0.02,0.2,0);
    double sar151 = iSAR(NULL,15,0.02,0.2,1);
    double sar152 = iSAR(NULL,15,0.02,0.2,2);
    // Определяем цену открытия и закрытия для 15,5 и 1 мин. графиков
   double Open10 = iOpen (Symbol(),PERIOD_M1,0); // цена открытия 1 мин. свечи нулевого бара
   double Close10= iClose(Symbol(),PERIOD_M1,0); // цена закрытия 1 мин. свечи нулевого бара
   double Open50 = iOpen (Symbol(),PERIOD_M5,0); // цена открытия 5 мин. свечи нулевого бара
   double Close51= iClose(Symbol(),PERIOD_M5,1); // цена закрытия 5 мин. свечи первого бара    
   //-------------открытие позиции Buy покупка----------------- 
    if(
    (sar10>Open10)&&     //  SAR 1 // сравниваем с ценой открытия
    (sar11>Close10)&&    // минута и сравниваем с ценой закрытия
    (sar50>Open50)&&         //  SAR 5
    (sar51>Close51)&&        // минут
    (sar150>Open[0])&&        //  SAR 15
    (sar151>Close[0+1])&&     // минут
    (sar152<Close[0+2])       // начало тренда
    )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    
    //-------------Открытие позиции Sell продажа----------------  
    if(
    (sar10<Open10)&&       //  SAR 1// сравниваем с ценой открытия
    (sar11<Close10)&&      // минута и сравниваем с ценой закрытия
    (sar50<Open50)&&       //  SAR 5
    (sar51<Close51)&&      // минут
    (sar150<Open[0])&&        //  SAR 15
    (sar151<Close[0+1])&&     // минут
    (sar152>Close[0+2])       // начало тренда
    )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+

コンパイル時にエラーは検出されませんでした!!!!

ありがとうございました。

 
artmedia70:
artemida70さん、Market Watchのウィンドウに通貨ペアがありますね。あなたの読み込み方法を試しましたが、うまくいきません。データを読み込む際、緑のバーが最後まで到達せず、読み込みが停止してしまう。リロードすると、"No new symbol data... "というタブローが表示されなくなりました。ちなみに、すべてのタイムフレームキューブが同時に明るい色になりました(ロードはM1で行っていますが)。ローディングファイルが破損した可能性があります。どうすればいい?
 
Vinin:


もしかしたら、インクルードファイルに記述されている変数の値を取得する方法を聞きたかったのかもしれませんね。


はい、まさにその通りです。OptimizationReport.mq4という、とても便利なファイルがありますね。Recovery Factorを計算するために、少し改良しました。さて、この変数の値をメインコードで取得し、テスターの通過を検知してPVレベルの上限を設定することで、最適化のスピードアップを図りたい。グローバル変数でやってみた。私の変数の値は、メインコードでは見えません。

EAに私は書いています。

double myValue = GlobalVariableGet("myValue");
Print("myValue="+myValue).Print("myValue="+myValue")。
MessageBox("myValue="+myValue).MessageBox("myValue="+myValue")。
Alert("myValue="+myValue);

In include(敷き詰める)。

GlobalVariableSet("myValue", 1);

動作しない、myValue=0.00000000

ファイル:
 

ここでもチェックしようと思ったのですが.

narod.ruにメールを送る設定はどうすればよいですか?

すべてのバリエーションを試した。

SMTPサーバー - smtp.narod.ru

SMTPログイン: - имя@narod.ru

SMTPパスワード - パスワード

From: slt-soft@narod.ru

宛先: slt-soft@narod.ru

エラー: メール: smtp.narod.ruへのログインに失敗しました。