MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 80

 
Artyom Trishkin:

別のシンボルのテスターで?または、別のシンボルでのデモ/リアルで?それともこのシンボルのテスターで?または、このシンボル上のデモ/リアルで?

なんで自分の中から全部出すんだ?

何が言いたいんだ?どこで試したか、どんな違いがあるのでしょうか?問題はPoint=0かどうかです。また、もしできるのであれば、どのようにコードを書けば、ゼロによる除算という エラーに遭遇しないのでしょうか?
 
LuckySith:

すみません、すごくオタクなんですけど......よくわからないんです。
たぶん、あなたはいくつかのコードで最も単純なインジケータを持って、私は理解するためのアナログを持っている?だって、見つからなかったんだもん。

バーの真ん中にドットを置く、とてもシンプルなコードを持っています。カーソルを合わせるとテキストが表示されるようにするにはどうすればいいのでしょうか?ボックスでも何でもいいです。



#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars;
//----  
   for(int i=limit; i>=0; i--)
     {
      double       fabody0 = fabs(Close[i]-Open[i]);
      double       fabody1 = fabs(Close[i+1]-Open[i+1]);
      double       fabody2 = fabs(Close[i+2]-Open[i+2]);
      double       fabody3 = fabs(Close[i+3]-Open[i+3]);
      double       fabody4 = fabs(Close[i+4]-Open[i+4]);
      double       fabody5 = fabs(Close[i+5]-Open[i+5]);
      double       fabody6 = fabs(Close[i+6]-Open[i+6]);
      double       fabody7 = fabs(Close[i+7]-Open[i+7]);
      if((fabody0>fabody1) && (fabody0>fabody2) && (fabody0>fabody3) && (fabody0>fabody4) && (fabody0>fabody5) && (fabody0>fabody6) &&(Volume[i]>Volume[i+1]))
      {  
         if (((Close[i]>Open[i])&&(Low[i]+(High[i]-Low[i])/2>Low[i+1]+(High[i+1]-Low[i+1])*0.9))||((Close[i]<Open[i])&&(Low[i]+(High[i]-Low[i])/2<Low[i+1]+(High[i+1]-Low[i+1])*0.1)))
         ExtMapBuffer1[i]=(iHigh(Symbol(),0,i)+iLow(Symbol(),0,i))/2;
      }
     }
//----
   return(0);
  }
トライ
ファイル:
gmxdk8j.mq4  6 kb
 
Gevorg Hakobyan:
何が言いたいんだ?どこで試したか、どんな違いがあるのでしょうか?問題はPoint=0かどうかです。また、もしできるのであれば、ゼロによる除算という エラーに遭遇しないように、どのように正しいコードを書けばいいのでしょうか?
お好きなようにどうぞ。
そこで、分周器をゼロにしてから分周することを確認します。
結果ではなく原因に興味があるのかと思いきや、適当な松葉杖。
 
Artyom Trishkin:
お好きなようにどうぞ。
そこで、分周器をゼロにしてから分周することを確認します。
結果ではなく原因に興味があるのかと思いきや、適当な松葉杖。
台詞を全部読んだわけではありませんが、小数点以下5桁目の印刷に問題があるのでは?
 
Alexey Viktorov:
台詞を全部読んだわけではありませんが、小数点以下5桁目の印刷に問題があるのではないかと思います。
いいえ、Point()で割って、ゼロによる除算を 取得します。
だから、シンボルデータをどこでどうやって取得するのか、まとまった答えが欲しいのです。

 
Artyom Trishkin:
いいえ、Point()で割って、ゼロ除算を 取得します。
シンボルのデータをどこでどのように取るのか、明確な答えが欲しいのです。

if(v=="NZD")
{
h=(iClose("NZDUSD",p,b)-iOpen("NZDUSD",p,b))/MarketInfo("NZDUSD",MODE_POINT)+...
(iOpen("EURNZD",p,b)-iClose("EURNZD",p,b))/MarketInfo("EURNZD",MODE_POINT)+...
(iOpen("GBPNZD",p,b)-iClose("GBPNZD",p,b))/MarketInfo("GBPNZD",MODE_POINT)+...
(iOpen("AUDNZD",p,b)-iClose("AUDNZD",p,b))/MarketInfo("AUDNZD",MODE_POINT)+ (iOpen("AUDNZD",p,b)))
(iClose("NZDJPY",p,b)-iOpen("NZDJPY",p,b))/MarketInfo("NZDJPY",MODE_POINT)+ ※MarketInfo("NZDJPY",MODE_POINT) を参照。
(iClose("NZDCAD",p,b)-iOpen("NZDCAD",p,b))/MarketInfo("NZDCAD",MODE_POINT)+...
(iClose("NZDCHF",p,b)-iOpen("NZDCHF",p,b))/MarketInfo("NZDCHF",MODE_POINT) になります。
}
 
Alexey Viktorov:
台詞を全部読んだわけではありませんが、小数点以下5桁目の印刷に問題があるのでは?
それが問題なのでしょうか?
 
Gevorg Hakobyan:
それが問題なのでしょうか?
いいえ、印刷時やアラートで5桁目が見えなくなる程度です。
 
Alekseu Fedotov:
トライ
一般に、これは必要なことですが、問題は記述がかなり大きくなり、この方法では文字通り2、3の単語しか書けず、残りは表示されないことです。
 

こんにちは。

よろしくお願いします。

現在、1、2、3、4、5...の順にロットが増えています。

注文ごとではなく、1、1、1、2、2、3、3、3... 3個単位でロットを増やしてほしいです。


extern double   LotStop        = 0.01;
extern double   Plus_LotStop   = 0.01;
extern double   Plus_N_ORD  = 3;        //каждые N ордеров
void OnTick()
  {
//---
      for (int i=1; i<=OrdersStop; i++)
   {
         if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
         {
            OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
            numB++;
            PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
          
            OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
            numS++;
            PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
         }
      
      LOTs=LOTs+Plus_LotStop;
      }
  }