초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 716

 
Artyom Trishkin :

안녕하세요 ... 어떻게 불가능합니까?

그리고 그것은 무엇입니까? 에디터에서 5분...

아주!

팀?

int j;
...
start()
{
........
      j=j+ 10 ;
       PlotIndexSetInteger ( 0 , PLOT_SHIFT ,j);
........
롤하지 않습니다((( //MT4, 빌드 1031
 
Renat Akhtyamov :

감사하다!

일반적으로 그렇습니다.

표시기 창의 라인을 제로 바 너머로 오른쪽으로 이동하면 MT5 플랫폼에서 실제로 작동합니다.

MT4는 그런 기회가 없는데 안 해서 안 됐다.

또한 내가 아는 한 MT5는 MT4와 달리 3D 모델링 기능이 있습니다.

모두 아주 멋져요!

나는 파산했다.

MT5로 갈아타세요!!! // 게다가 급하게;)

불가능한 것은 무엇입니까? 표시기 버퍼를 오른쪽으로 이동하시겠습니까? 여전히 오른쪽으로, 왼쪽으로도 가능합니다.) SetIndexShift().

하지만 MT5로 전환하기로 결정했기 때문에 깃발은 당신의 손에 달려 있습니다.)

 
Renat Akhtyamov :

아주!

팀?

int j;
...
start()
{
........
      j=j+ 10 ;
       PlotIndexSetInteger ( 0 , PLOT_SHIFT ,j);
........

계산된 버퍼의 마지막 10개 값을 엉뚱하게 뒤집어서 10바씩 쉬프트하여 출력했습니다. 최적화 등은 전혀 생각하지 않았습니다. 보여주기 위해:

//+------------------------------------------------------------------+
//|                                                  iCheckShift.mq4 |
//|              Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link        "https://login.mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots    2
//--- plot BufferCurrent
#property indicator_label1   "BufferCurrent"
#property indicator_type1   DRAW_LINE
#property indicator_color1   clrRed
#property indicator_style1   STYLE_SOLID
#property indicator_width1   1
//--- plot BufferFuture
#property indicator_label2   "BufferFuture"
#property indicator_type2   DRAW_LINE
#property indicator_color2   clrDodgerBlue
#property indicator_style2   STYLE_SOLID
#property indicator_width2   2
//--- input parameters
input int       Shift= 10 ;   // Смещение в будущее (баров)
//--- indicator buffers
double          BufferCurrent[];
double          BufferFuture[];
double          BufferCalculate[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   IndicatorBuffers ( 3 );
   SetIndexBuffer ( 0 ,BufferCurrent, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,BufferFuture, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,BufferCalculate, INDICATOR_CALCULATIONS );
   SetIndexShift ( 1 ,Shift);
//---
   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< 1 ) return ( 0 );
   ArraySetAsSeries (BufferCalculate, true );
   ArraySetAsSeries (BufferCurrent, true );
   ArraySetAsSeries (BufferFuture, true );
   int limit=rates_total-prev_calculated;
   if (limit> 1 ) {
      limit=rates_total- 1 ;
       ArrayInitialize (BufferCalculate, EMPTY_VALUE );
       ArrayInitialize (BufferCurrent, EMPTY_VALUE );
       ArrayInitialize (BufferFuture, EMPTY_VALUE );
      }
   for ( int i=limit; i>= 0 ; i--) {
      BufferCurrent[i]=(high[i]+low[i])/ 2.0 ;
       if (i<Shift) BufferCalculate[i]=(high[i]+low[i]+open[i]+close[i])/ 4.0 ;
      }
   for ( int i= 0 ; i<Shift; i++) {
      BufferFuture[Shift-i]=BufferCalculate[i];
      }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Vitalie Postolache :

불가능한 것은 무엇입니까? 표시기 버퍼를 오른쪽으로 이동 하시겠습니까? 최대한 오른쪽으로 왼쪽으로 ;)

하지만 MT5로 전환하기로 결정했기 때문에 깃발은 당신의 손에 달려 있습니다.)

위의 코드를 작성했습니다. 그래서?
 
Renat Akhtyamov :
위의 코드를 작성했습니다. 그래서?
나는 거기에 덧붙였다. SetIndexShift(). 예, Artyom이 더 자세히 썼습니다.
 
Vitalie Postolache :
나는 거기에 덧붙였다. SetIndexShift(). 예, Artyom이 더 자세히 썼습니다.

드디어! 문제 해결됨.

int j=0;
...
start()
{
........
      j=j+ 10 ;
       SetIndexShift ( 0 ,j);

모든 것이 MT4에서 작동합니다.

모두 감사합니다!!!

 
안녕하세요 !
내 질문은 다음과 같습니다.
현재 가격 으로 계산된 특정 값 "A"를 갖는 MACD가 표시기 창에 있습니다. 현재 MACD 값이 "-A"가 되면 가격 값을 계산하는 공식은 무엇입니까?
 
Leo59 :
안녕하세요 !
내 질문은 다음과 같습니다.
현재 가격 으로 계산된 특정 값 "A"를 갖는 MACD가 표시기 창에 있습니다. 현재 MACD 값이 "-A"가 되면 가격 값을 계산하는 공식은 무엇입니까?
https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_MACD
Индикатор MACD — Википедия
Индикатор MACD — Википедия
  • ru.wikipedia.org
Индикатор используют для проверки силы и направления тренда, а также определения разворотных точек. Строится на основе скользящих средних. Существует две модификации индикатора MACD: линейный MACD и MACD-гистограмма. Для расчёта линейного MACD из скользящей средней цены (обычно берётся экспоненциальная скользящая средняя с меньшим периодом...
 
Renat, 물론 참여해주셔서 감사합니다. .... 하지만 질문은 다른 것에 관한 것이었습니다.
현재 가격 으로 계산된 특정 값 "A"를 갖는 MACD가 표시기 창에 있습니다. 현재 MACD 값이 "-A"가 되면 가격 값을 계산하는 공식은 무엇입니까?
 
Leo59 :
Renat, 물론 참여해주셔서 감사합니다. .... 하지만 질문은 다른 것에 관한 것이었습니다.
현재 가격 으로 계산된 특정 값 "A"를 갖는 MACD가 표시기 창에 있습니다. 현재 MACD 값이 "-A"가 되면 가격 값을 계산하는 공식은 무엇입니까?
특정 값 "A"가 양수 값을 가질 때 계산 공식을 표시하는 것이 가치가 있을 수 있습니다. 그렇지 않으면 우리가 말하는 내용이 명확하지 않습니다.
사유: