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

 
MakarFX # :

그러나 왜이 배열이 필요한지, 나는 여전히 이해하지 못합니다 ...

 int TradeSignal() 
  {
   int limit, i, sig=- 1 ;
   double Ma_curr, Ma_prev, value;
   limit=MaPeriod* 3 ;
   for (i=limit;i>= 0 ;i--)
     {
      Ma_curr= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice,i);
      Ma_prev= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice,i+ 1 );
      value=Ma_curr-Ma_prev;
       if (value> 0 ) sig= 0 ;
       if (value< 0 ) sig= 1 ;
     }
   return (sig);
  }

기능은 그것 없이도 작동합니다.

 
Mihail Matkovskij # :

그러나 왜이 배열이 필요한지, 나는 여전히 이해하지 못합니다 ...

기능은 그것 없이도 작동합니다.

그리고 사이클은 여기에서 쓸모가 없습니다.

 int TradeSignal() 
  {
   int sig=- 1 ;
   double Ma_curr, Ma_prev, value;

   Ma_curr= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice, 0 );
   Ma_prev= iMA ( _Symbol , _Period ,MaPeriod, 0 ,MaMethod,MaPrice, 1 );
   value=Ma_curr-Ma_prev;
   if (value> 0 ) sig= 0 ;
   if (value< 0 ) sig= 1 ;

   return (sig);
  }
 
Mihail Matkovskij # :

그리고 사이클은 여기에서 쓸모가 없습니다.

그냥 그렇게 했지만 어레이가 작동하지 않는 이유를 이해하고 싶었습니다.

그리고 그건 그렇고

 ArraySize (Buffer,limit);

도움이되지 않았습니다 (


'ArraySize' - 잘못된 매개변수 개수

무제한 고정

'_exp.mq4'의 범위를 벗어난 배열(267,17)

 
MakarFX # :


ArraySize가 아니라 ArrayResize입니다.

 
Yurij Kozhevnikov # :

ArraySize가 아니라 ArrayResize입니다.

범위를 벗어난 배열
 
MakarFX # :

그냥 그렇게 했지만 어레이가 작동하지 않는 이유를 이해하고 싶었습니다.

그리고 그건 그렇고

도움이되지 않았습니다 (


'ArraySize' - 잘못된 매개변수 개수

무제한 고정

'_exp.mq4'의 범위를 벗어난 배열(267,17)


나는 즉시 를 알아차리고 수정했다. 그리고 아마도 수정되지 않은 코드를 복사했을 것입니다.

그리고 어레이가 작동하지 않는 이유 등을 알고 싶다면 , 참조: 배열 작업 .

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.28
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Mihail Matkovskij # :


나는 즉시 를 알아차리고 수정했다. 그리고 아마도 수정되지 않은 코드를 복사했을 것입니다.
고마워, 효과가 있었다!
 
MakarFX # :
고마워, 효과가 있었다!

물론이죠! 추가된 메시지...

 
//+----------------------------------------------- --------------------+
//| move.mq4로 테스트 |
///+---------------------------------------------- --------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#속성 링크 " https://www.mql5.com "
#속성 버전 "1.00"
#속성엄격
extern string Moving_Averages1= "지시 매개변수";
extern int MA_Period=13;
외부 정수 MA_Shift=0;
외부 정수 MA_Method=0;

외부 정수 TakeProfit= 300;
extern int 손절매 = 50;
이중 ma1,ma2,랏,SL,TP;

인트르;



//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
int OnInit()
{
반환(INIT_SUCCESSED);
}
//+----------------------------------------------- --------------------+
//| 전문적인 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
무효 OnDeinit(const int 이유)
{
}
//+----------------------------------------------- --------------------+
//| 전문가 틱 기능 |
//+----------------------------------------------- --------------------+
무효 OnTick()
{
if(!OllCount()==0)
{
스위치(주문 유형())
{
케이스 OP_BUY
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0);
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1);
if((ma1-ma2)>0)
{
반품;
}또 다른
SL=NormalizeDouble(Bid+StopLoss*Point,5);
TP=NormalizeDouble(Bid-TakeProfit*Point,5);
if(OrderClose(OrderTicket(),OrderLots(),Ask,3,Black))
if(OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red))
반품;
케이스 OP_SELL
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0);
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1);
if((ma1-ma2)<0)
{
반품;
}
또 다른
SL=NormalizeDouble(Ask-StopLoss*Point,5);
TP=NormalizeDouble(Ask+TakeProfit*Point,5);
if(OrderClose(OrderTicket(),OrderLots(),Bid,3,Red))
if(OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,0,"",0,0,Black))
반품;
}
}
ma1=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,0);
ma2=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,0,1);
if((ma1-ma2)<0)
{
SL=NormalizeDouble(Bid+StopLoss*Point,5);
TP=NormalizeDouble(Bid-TakeProfit*Point,5);
res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red);
if(res<0)
{
Print("판매 주문을 열 때 오류가 발생했습니다.");
}
}
또 다른
SL=NormalizeDouble(Ask-StopLoss*Point,5);
TP=NormalizeDouble(Ask+TakeProfit*Point,5);
if(OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",0,0,Blue))
반품;
}
//+----------------------------------------------- --------------------+
정수 올카운트()
{
정수 수 = 0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
카운트++;
}
}
반환(카운트);
}
//+----------------------------------------------- --------------------+
//+---/| Copyright 2021, MetaQuotes Software Corp. |
-------------------------------------------------- ----------+

//+----------------------------------------------- --------------------+

MA에 내 자신의 고문을 작성하려고 시도했는데 샘플에 따라 모든 것을 한 것 같지만 오류가 발생합니다. 무엇이 잘못되었는지 이해하지 못합니다. 말씀해 주세요.

'ma1' - 일부 연산자가 필요함 move.mq4로 테스트 47 21

'=' - ':' 콜론 기호가 필요함 move.mq4로 테스트 47 24

'=' - 피연산자가 필요함 move.mq4로 테스트 47 24

'ma1' - 일부 연산자가 필요함 move.mq4로 테스트 60 열 다섯

'=' - ':' 콜론 기호가 필요함 move.mq4로 테스트 60 십팔

'=' - 피연산자가 필요함 move.mq4로 테스트 60 십팔


 
Sanjakotik78 # :


처음에는 주문 작업에 대한 잘못된 논리가 있습니다. MA에 대한 간단한 전문가 (예: CodeBase) 를 찾아 사용하십시오. 또는 원하는 대로 사용자 정의할 수 있습니다. 코드 전체와 관련하여 모든 것이 잘못되었습니다. 코딩에 더 많은 관심을 기울이세요. 간단하게 시작하세요. 또는 내가 말했듯이 기성품을 찾으십시오.

상단의 특수 버튼을 사용하여 코드 스니펫을 추가합니다.