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

 
最初の説明では、1/3で閉じると描画されるはずなのですが、少し間違っています。
 
みんな、アップデートはまだか?
 
レベル20と80のストキャスティクスを 使った指標について質問です。またはレベル0とMACD。
だから問題は、それが20以下または80以上のメインラインとシグナルline.Orこれらのレベルの後ろに交差しているときに指標の値を取る方法です。指標の値は、私は持っていると思うが、その後、それらをどうするかは分からない。

Stoh=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0);
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0))となります。

Macd=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0);
MacdSignal=iMACD(Symbol(),PERIOD_H4,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0) となります。
 
denis77515:
プログラマーの皆さん、pliz stochastic indicatorはレベル20、80と説明してください。あるいはレベル0のMACD。
指標となる数値は得られたと思うのですが、それをどうすればいいのかわかりません。

Stoh=iStochastic(Symbol(,PERIOD_H1,Kperiod,Dperiod,Slowing,MODE_SMA,0,MODE_MAIN,0)) とします。
StohSignal=iStochastic(Symbol(),PERIOD_H1,Kperiod,Dperiod,Slowing,MODE_SMA,0,MODE_SIGNAL,0) とする。

Macd=iMACD(Symbol()、PERIOD_H4、fast_ema_period、slow_ema_period、signal_period、PRICE_CLOSE、MODE_MAIN、0)。
MacdSignal=iMACD(Symbol()、PERIOD_H4、fast_ema_period、slow_ema_period、signal_period、PRICE_CLOSE、MODE_SIGNAL,0)


スタディガイド

今さらですが、今日も更新しています。

チュートリアルの例

//--------------------------------------------------------------------
// grafobjects.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 1 --
   int Sit;
   double MACD_M_0,MACD_M_1,           // Главная линия, 0 и 1 бар
   MACD_S_0,MACD_S_1;                  // Сигнальная линия, 0 и 1 бар
   string Text[4];                     // Объявление строков. массива
   color  Color[4];                    // Объявление массива цветов

   Text[0]= "Открытие Buy";            // Текст для различных ситуаций
   Text[1]= "Открытие Sell";
   Text[2]= "Удерживаем Buy";
   Text[3]= "Удерживаем Sell";

   Color[0]= DeepSkyBlue;              // Цвет объекта ..
   Color[1]= LightPink;                // .. для различных ситуаций
   Color[2]= Yellow;
   Color[3]= Yellow;
//--------------------------------------------------------------- 2 --
   ObjectCreate("Label_Obj_MACD", OBJ_LABEL, 0, 0, 0);// Создание объ.
   ObjectSet("Label_Obj_MACD", OBJPROP_CORNER, 1);    // Привязка угол
   ObjectSet("Label_Obj_MACD", OBJPROP_XDISTANCE, 10);// Координата Х
   ObjectSet("Label_Obj_MACD", OBJPROP_YDISTANCE, 15);// Координата Y
//--------------------------------------------------------------- 3 --
   MACD_M_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);  // 0 бар
   MACD_S_0 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);// 0 бар
   MACD_M_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);  // 1 бар
   MACD_S_1 =iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);// 1 бар
//--------------------------------------------------------------- 4 --
   // Анализ ситуации 
   if(MACD_M_1<MACD_S_1 && MACD_M_0>=MACD_S_0)// Персеч. снизу вверх
      Sit=0;
   if(MACD_M_1>MACD_S_1 && MACD_M_0<=MACD_S_0)// Персеч. сверху вниз
      Sit=1;
   if(MACD_M_1>MACD_S_1 && MACD_M_0>MACD_S_0) // Главная выше сигн.
      Sit=2;
   if(MACD_M_1<MACD_S_1 && MACD_M_0<MACD_S_0) // Главная ниже сигн.
      Sit=3;
//--------------------------------------------------------------- 5 --
   // Изменение свойств объекта
   ObjectSetText("Label_Obj_MACD",Text[Sit],10,"Arial",Color[Sit]);
//--------------------------------------------------------------- 6 --
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 7 --
int deinit()                           // Спец. функция deinit
   {
   ObjectDelete("Label_Obj_MACD");     // Удаление объекта
   return;                             // Выход из deinit()
   }
//--------------------------------------------------------------- 8 --
 
double close_price(int nomer_bara)
{
if(nomer_bara<1)
{
Alert("нельзя анализировать текущий бар");
}
else
{
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3)//возвращает 1/3 если цена текущего бара закрылась ниже 1/3 его спреда 
{
return(1/3);
}
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3&&(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)*2)/3)//возвращает 2/3 если цена текущего бара закрылась ниже 2/3 и выше 1/3 его спреда 
{
return(2/3);
}

if((iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>(iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))*2)/3&&iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))//возвращает 1 если цена текущего бара закрылась выше 2/3 его спреда
{
return(1);
}
}

}

 if(close_price(1)==1/3)// в случае если цена закрылась внизу то нарисовать линию на этом баре
   {
 SetVLine(Red, "", Time[1], STYLE_SOLID, 2);
   }
и так вся проблема заключается в том что линия рисуется на каждом баре не пойму какого черта... помогите пожалуйста
線は、価格が底値で終了したバー、すなわち1/3バーに引かなければ なりません。
 

こんにちは!Windowsを再インストールしようと思うのですが、EAsフォルダをハードディスクに移動すると、最近書き込んだEAが消えてしまいます!どうしたらいいでしょうか?何かアドバイスがあれば教えてください。

*コードをドキュメントに保存してから再作成することはできません。なぜなら、コードがたくさんあり、人的要因の可能性があるため、データを失いたくないからです :)

 
こんにちは!助けてください!Expert Advisorを書いたプログラマーが消えてしまい、自分で完成させなければならなくなりました...。自分で書き直したのですが、まだ1つ機能が残っています。私のExpert Advisorは、サポートとレジスタンスのレベル+Fiboのレベルのブレイクダウンを、それぞれセカンドシグナルとして動作させています。その結果、シグナルは出るのですが、何らかの制約があったり、最小のTake Profitを 設定するためのポイントが足りなかったりして、うまくいきませんでした。助けてください、アドバイスしてください、またはアドバイザーにリンクを投げてください...。 買いは下から上へのみ、売りは上から下へのブレイクが条件です。本当にありがとうございました!!!!
 

みんな、助けて!最後に開いた注文(まだ閉じていない)のロットを返す関数があるんだ。最後から二番目の未決済注文のロットを返すように修正することは可能ですか?配列を使わずにやればいいんだ...。

double FindLastLots (int otype)
{
  double oldopenprice,oldlots;
  int oldticket;
  
  ticket = 0;
  
  for (int i = OrdersTotal()-1; i>=0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) 
    {
      if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
      {
         oldticket = OrderTicket();
         if (oldticket>ticket)
         {
            oldlots = OrderLots();
            ticket = oldticket; 
         } 
      }  
    }
  }
  return (oldlots);
}
 
Trader7777:

みんな、助けて!最後に開いた注文(まだ閉じていない)のロットを返す関数があるんだ。最後から二番目の未決済注文のロットを返すように修正することは可能ですか?配列を使わずにやればいいんだ...。

ここにもアレイはないんですね。コードの信頼性はあまり高くない。オープンオーダー一覧の最後の1枚を探すのです。IMHOは、これに対するバインディングはあまり信頼性がありません。最後のオープンオーダーを見つける最も確実な方法は、そのオープン時間です(すべての中で最も低い時間です)。
 
ホットキーでトレンドラインを呼び出すトリッキーな方法はないでしょうか?