MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 991

 
LuckyTrader :
오류는 동일한 문구로 발판을 떠났고 이제는 다른 부분으로 이동했습니다. 조금 더 높이 이고르에게 편지를 썼어

오류가 발생하는 위치에 인쇄를 삽입하십시오. 적어도 이 방법으로 문제를 해결할 수 있습니다.

다른 방법은 없어 이미 실수의 이유를 설명했습니다

 

안녕하세요, 인디케이터를 MQL4에서 MQL5로 다시 작성 하기로 결정하고 인디케이터의 버퍼에 붙였습니다... 필요한 건 다 입력한 것 같은데 인디케이터 라인이 안 뜨네요!

다음은 예입니다. 마지막 30개 막대에 종가를 표시하고 싶습니다. 버퍼가 무언가로 채워져 있는지 확인하기 위해 주석으로 버퍼도 표시했습니다.

버퍼가 가득 차고 차트가 비어 있으며 차트에 그림이 없습니다(((

무엇이 문제가 될 수 있습니까? MQL5 막대의 mb를 거꾸로?))


 //+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                                                . |
//|                                                                . |
//+------------------------------------------------------------------+
#property copyright "."
#property link        "."
#property version    "1.00"
#property indicator_chart_window
#property indicator_buffers 8          // Количество буферов индикатора
#property indicator_plots    8          // Количество графических серий

#property indicator_label1 "TestLine" 
#property indicator_type1 DRAW_LINE   
#property indicator_style1 STYLE_SOLID 
#property indicator_width1 1   
#property indicator_color1 Red  
//+------------------------------------------------------------------+
//|                        БУФЕРЫ                                    |
//+------------------------------------------------------------------+
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
//+------------------------------------------------------------------+
//|                     ПАРАМЕТРЫ БУфЕРА                             |
//+------------------------------------------------------------------+
int OnInit (){                   

SetIndexBuffer ( 0 ,Buffer1, INDICATOR_DATA );
PlotIndexSetInteger ( 0 , PLOT_DRAW_TYPE , DRAW_LINE );  
PlotIndexSetInteger ( 0 , PLOT_LINE_WIDTH , 1 );         
PlotIndexSetInteger ( 0 , PLOT_LINE_COLOR ,Blue);   

return ( INIT_SUCCEEDED );}
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason){
Comment ( "" );}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| 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[]){
                
                
for ( int Z = 30 ; Z>= 0 ; Z--) {
Buffer1[Z] = iClose ( NULL , 0 ,Z);} 
Comment (Buffer1[ 0 ]);               

return (rates_total);}
//+------------------------------------------------------------------+

 
Nikita Zubarov :

안녕하세요, 인디케이터를 MQL4에서 MQL5로 다시 작성 하기로 결정하고 인디케이터의 버퍼에 붙였습니다... 필요한 건 다 입력한 것 같은데 인디케이터 라인이 안 뜨네요!

다음은 예입니다. 마지막 30개 막대에 종가를 표시하고 싶습니다. 버퍼가 무언가로 채워져 있는지 확인하기 위해 주석으로 버퍼도 표시했습니다.

버퍼가 가득 차고 차트가 비어 있으며 차트에 그림이 없습니다(((

무엇이 문제가 될 수 있습니까? MQL5 막대의 mb를 거꾸로?))


MQL5의 막대 번호가 반대입니다.

 for ( int Z = rates_total-50; Z<rates_total; Z++)


인덱싱은 https://www.mql5.com/ru/docs/array/arraysetasseries 를 사용하여 변경할 수 있습니다.
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Igor Makanu :

MQL6의 막대 번호가 반대입니다.


인덱싱은 https://www.mql5.com/en/docs/array/arraysetasseries 를 사용하여 변경할 수 있습니다.

감사합니다!, 한 줄 추가했더니 정상적으로 보이기 시작했습니다!

 ArraySetAsSeries (Buffer1, true ); 
그러나 막대의 번호 매기기는 오른쪽에서 왼쪽으로 동일하고 버퍼가 뒤로 이동하는 것 같습니다....
 
Nikita Zubarov :

감사합니다!, 한 줄 추가했더니 정상적으로 보이기 시작했습니다!

그러나 막대의 번호 매기기는 오른쪽에서 왼쪽으로 동일하고 버퍼가 뒤로 이동하는 것 같습니다....

4-ke 막대에서 숫자 0은 가장 오른쪽 막대입니다.

5-ke 막대에서 숫자 0은 가장 왼쪽 막대입니다.

기본적 으로 표시기 버퍼의 인덱싱은 시계열의 경우와 동일합니다.

ArraySetAsSeries()를 적용하면 하나의 배열에만 적용됩니다. 귀하의 예에서는 표시기 버퍼 Buffer1 의 배열에 올바른 계산을 위해 적용해야 합니다.

 ArraySetAsSeries (Buffer1, true ); 
ArraySetAsSeries (close, true ); 
for ( int Z = 30 ; Z>= 0 ; Z--) 
{
Buffer1[Z] = сlose[i];
} 

또는 위와 같이 루프를 변경하십시오.

 
안녕하세요! 알려주세요, 저는 고문이 현재 차트와 다른 기호 에서 포지션 을 열길 원합니다.
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, 랏, 매도, 슬립, 0, 0, "", 매직, 0, 블루)
제가 맞습니까? 그렇지 않은 경우 저를 수정하십시오.
 
Averman :
안녕하세요! 알려주세요, 저는 고문이 현재 차트와 다른 기호 에서 포지션 을 열길 원합니다.
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, 랏, 매도, 슬립, 0, 0, "", 매직, 0, 블루)
제가 맞습니까? 그렇지 않은 경우 저를 수정하십시오.

물론 옳지 않습니다.

 OrderSend ( "EURUSD" , OP_BUY, Lots, MarketInfo( "EURUSD" ,MODE_ASK), Slip, 0 , 0 , "" , Magic, 0 , Blue) 
실수가 없다면 그래야 합니다. 그러나 어떤 경우에도 의미는 분명해야 합니다.
 
MQL6이 이미 나타났습니다. 이 쉘을 테스트한 사람은 누구입니까?
 
Seric29 :
MQL6이 이미 나타났습니다. 이 쉘을 테스트한 사람은 누구입니까?

오늘이 4월 1일인가요?

 
Alexey Viktorov :

오늘이 4월 1일인가요?

그리고 구글링을 시작했다

... mql5.com에서 한 페이지로 된 mql6 사이트와 포럼에 대한 하나의 링크를 찾았습니다.