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

 
Alexey Viktorov:

だから、真ん中に限定する。誰が禁止しているのか?

男性でないなら、PMS症候群で読書や適切な質問ができないらしく、今のところ鳴き声だけ聞かせています...。本当はこうあってほしい、あああってほしくない...。

ZS: 私は4つのフォーラムで、できれば、1ヶ月に約20の無料のMT4の仕事と、個人のTKの約10の注文をしますが、定期的に1.5-2ヶ月ごとに、彼はMT4を理解する必要がないため、私の心を吹くだろうおとぎ話のキャラクターが登場し、注文で特定のタスクを行う......彼はただ誰かの頭を回転させればいい、それが彼の仕事なのだから...。

このようなキャラクターを長い間、辛抱強く扱ってきたアルテムには、生前に記念碑を贈りたいくらいです。

 
Alexey Viktorov:

とても簡単なことなんです。

選択肢1は、頭を使うことです。

できない場合は、オプション2を利用することができます。

騒がず、特に開発者やフォーラムユーザーを侮辱せず、フォーラムで助けを求めてください。

そうでない場合は、.NET Frameworkに移動します。メールを送信します。

この「機能」を回避する方法を知っています。

この掲示板の「立派な人々」と違って、私はそれを秘密にするつもりはありません。

この方法は、次のようになります。

もし、興味のない配列の残りを最大値で埋めてしまうと、インジケータは線を描かなく なります。

これはまさに、標準的なMT4の指標(例えば、SMA、EMA、SMMAなど)で見られるこの問題の「愚かな」解決策です。

しかし、これは完全なバカであることに同意してください。そして、このバカバカしさゆえに、この問題を「解決」する方法については、説明文に一言も書かれていないのではないだろうか。

私が間違っているのかもしれませんが、標準のインジケーターでは他の方法を見つけられませんでした。

 
Alexey Viktorov:

まさにこの通り。新しい口座を開設し、古い口座から新しい口座に内部振替で送金すれば、手数料はまったくかかりません。

全く理解できない。アレクセイ、どうして自分の言っていることがわかるんだ?どこかのトランスレータが翻訳できない8つのインジケータ・バッファと何の関係があるのでしょうか?どうだろう...
 
Igor Makanu:

男性でないなら、PMS症候群で読書や適切な質問ができないらしく、今のところ鳴き声だけ聞かせています...。本当はこうあってほしい、あああってほしくない...。

ZS: 私は4つのフォーラムで、できれば、1ヶ月に約20の無料のMT4の仕事と、個人のTKの約10の注文をしますが、定期的に1.5-2ヶ月ごとに、彼はMT4を理解する必要がないため、私の心を吹くだろうおとぎ話のキャラクターが登場し、注文で特定のタスクを行う......彼はただ誰かの頭を回転させればいい、それが彼の仕事なのだから...。

このようなキャラクターを長い間、辛抱強く扱ってきたアルテムには、生前に記念碑を贈りたいくらいです。

休養が必要なのでしょう。

 
将来、問題が起きないように、冷静に子どもたちをやっていかなければなりません。
 

私は何を間違えているのだろう?

//+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                                                        RomanRott |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "RomanRott"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot HL_CCI
#property indicator_label1  "HL_CCI"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
input int      Period_=70; //Период
//--- indicator buffers
double         HL_CCIBuffer[];
int cci_h1, cci_h2;
double cci1[], cci2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,HL_CCIBuffer,INDICATOR_DATA);
   cci_h1 = iCCI(_Symbol, PERIOD_CURRENT, Period_, PRICE_HIGH);
   cci_h2 = iCCI(_Symbol, PERIOD_CURRENT, Period_, PRICE_LOW);
   
   //ArraySetAsSeries(cci1, true);
   //ArraySetAsSeries(cci2, true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   CopyBuffer(cci_h1, 0, 0, rates_total-prev_calculated, cci1);
   CopyBuffer(cci_h2, 0, 0, rates_total-prev_calculated, cci2);
   for(int i = prev_calculated; i<rates_total;i++){
      HL_CCIBuffer[i] = cci1[i]-cci2[i];
   }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:
全く理解できないんです。アレクセイ、どうして俺たちの話がわかるんだ?どこかのトランスレータが翻訳できない8つのインジケータ・バッファと何の関係があるのでしょうか?理解するのは難しい...。

アーテム プログラマーなんですね...。かつてM・ボツビニクは「コンピュータはバカだ」と言った。それゆえ、プログラマーは皆、バカと話す方法を知っている。

バッファが8個とか512個とかいうのは以前にも読んだことがあり、この文章はブローカーがMT4からMT5への口座 移行を拒否したことに対する苦情に関するものでした。


イゴール・マカヌ

そんな人物と辛抱強く付き合ってきたアルテムには、生前、記念碑を贈りたいくらいだ。

すでに...


 
Roman Sharanov:

私は何を間違えているのだろう?

//+------------------------------------------------------------------+
//|                                                      CCI_DIV.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot DivCCI
#property indicator_label1  "DivCCI"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  C'143,188,139'
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- input parameters
input uint     InpPeriod=70;   // CCI period
//--- indicator buffers
double         BufferDivCCI[];
double         BufferHCCI[];
double         BufferLCCI[];
//--- global variables
int            period_cci;
int            handle_hcci;
int            handle_lcci;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set global variables
   period_cci=int(InpPeriod<2 ? 2 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferDivCCI,INDICATOR_DATA);
   SetIndexBuffer(1,BufferHCCI,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,BufferLCCI,INDICATOR_CALCULATIONS);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,"HL CCI ("+(string)period_cci+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferDivCCI,true);
   ArraySetAsSeries(BufferHCCI,true);
   ArraySetAsSeries(BufferLCCI,true);
//--- create CCI's handles
   ResetLastError();
   handle_hcci=iCCI(NULL,PERIOD_CURRENT,period_cci,PRICE_HIGH);
   if(handle_hcci==INVALID_HANDLE)
     {
      Print("The iCCI(",(string)period_cci,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_lcci=iCCI(NULL,PERIOD_CURRENT,period_cci,PRICE_LOW);
   if(handle_lcci==INVALID_HANDLE)
     {
      Print("The iCCI(",(string)period_cci,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- Проверка и расчёт количества просчитываемых баров
   if(rates_total<fmax(period_cci,4)) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-1;
      ArrayInitialize(BufferDivCCI,EMPTY_VALUE);
      ArrayInitialize(BufferHCCI,0);
      ArrayInitialize(BufferLCCI,0);
     }
//--- Подготовка данных
   int count=(limit>1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_hcci,0,0,count,BufferHCCI);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_lcci,0,0,count,BufferLCCI);
   if(copied!=count) return 0;

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      BufferDivCCI[i]=BufferHCCI[i]-BufferLCCI[i];
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

インジケータが1ティック 毎ではなく、1秒毎に動作するように、コートに何を追加すべきかをアドバイスしてください。

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 レッド

#プロパティの厳密さ

double buffer[];

void init()

{

SetIndexBuffer(0,buffer)を設定。

SetIndexStyle(0,STYLE_SOLID)を設定します。

}

void start ()

{


double vbid_1 = MarketInfo("USDRUB",MODE_BID)。

double vbid_2 = MarketInfo("EURUSD",MODE_BID)。




double a = vbid_1;

double b = vbid_2;

double x = a / b ;

buffer[0] = x;

コメント(x)。

}


 
gonsharov:

インジケータを1ティック 毎ではなく、1秒毎に動作させるには、コートに何を追加すればよいのでしょうか?

https://docs.mql4.com/ru/basis/function/events を読む必要があります。

を作成し、イベントハンドラOnTimer() を作成します。

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
В языке MQL4 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL4: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...