포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 808

 

안녕하세요! 이해하도록 도와주세요. 저는 MQL4에서 첫 번째 Expert Advisor를 쓰고 있습니다.

EA 는 포지션을 열지만 청산하지는 않습니다. 로그에 오류가 표시되지 않습니다.

 void OnTick ()
  {RefreshRates();
  ma1= iMA ( _Symbol ,TimeFrame,Period_MA1,Shift_MA1,metod_ma1, PRICE_CLOSE , 0 );
ma2= iMA ( _Symbol ,TimeFrame,Period_MA2,Shift_MA2,metod_ma2, PRICE_CLOSE , 0 );


if (ma1<ma2)
{
SellPositionClose();
BuyPositionOpen();
}

if (ma1>ma2)
{
BuyPositionClose();
SellPositionOpen();
}
}
 

     
void BuyPositionOpen()   // покупка
{ int res= 0 ;
RefreshRates();
if ( OrdersTotal ()== 0 )
res= OrderSend ( _Symbol ,OP_BUY,Lots,Ask, 3 , 0 , 0 , "" ,Magic, 0 ,Blue);
if (res< 0 ) Print ( "OrderClose111111 error " , GetLastError ());
}

void      SellPositionOpen() // продажа
{ int res= 0 ;
RefreshRates();
if ( OrdersTotal ()== 0 )
res= OrderSend ( _Symbol ,OP_SELL,Lots,Bid, 3 , 0 , 0 , "" ,Magic, 0 ,Red);
if (res< 0 ) Print ( "OrderClose111111 error " , GetLastError ());
}

void BuyPositionClose() // закрытие длинной позиции
{RefreshRates();
if (( OrdersTotal ()!= 0 ) && (OrderMagicNumber()==Magic))
{
if (! OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)) Print ( "OrderClose error " , GetLastError ());

 if (OrderType()==OP_BUY)
           
             if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White))
               Print ( "OrderClose error " , GetLastError ());
               }
               }
               
void SellPositionClose()   // закрытие короткой позиции
{RefreshRates();
if ( OrdersTotal ()!= 0 && OrderMagicNumber()==Magic)
{
if (! OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)) Print ( "OrderClose error " , GetLastError ());
    
     if (OrderType()==OP_SELL)
                
             if (!OrderClose(OrderTicket(),OrderLots(),Ask, 100 ,White))
               Print ( "OrderClose error " , GetLastError ());
               
               }
               }
 
Terind :

안녕하세요! 이해하도록 도와주세요. 저는 MQL4에서 첫 번째 Expert Advisor를 쓰고 있습니다.

EA는 포지션을 열지만 닫지는 않습니다. 로그에 오류가 표시되지 않습니다.

이 조건은 작동하지 않습니다:

 if (( OrdersTotal ()!= 0 ) && ( OrderMagicNumber()==Magic) ) //ордер ещё не выбран с помощью OrderSelect()
 
evillive :

이 조건은 작동하지 않습니다:

고맙습니다. 이제 작동합니다.
 
여보세요. 그런 문제에 직면했습니다. 한 쌍의 차트에 선과 직사각형을 그리면 이러한 모든 요소가 다른 쌍의 시장에 표시됩니다. 그 이유는 무엇이며 제거하는 방법은 무엇입니까?
 
roymax :
여보세요. 그런 문제에 직면했습니다. 한 쌍의 차트에 선과 직사각형을 그리면 이러한 모든 요소가 다른 쌍의 시장에 표시됩니다. 그 이유는 무엇이며 제거하는 방법은 무엇입니까?
보여줄 필요가 있습니다. 그렇지 않으면 다른 사람들이 방법을 모릅니다. 그리고 바람직하게는 코드에서
 

이것은 오랜 버그입니다. 이미 기능이라고 생각할 수 있습니다. :)

1. 차트에 무언가를 그립니다.

2. 스페이스바를 누르고 다른 쌍으로 이동

그래픽 개체는 차트에 남아 있습니다.

예시:

유로 차트에 직선 그리기

파운드로 전환하고 세로 눈금을 줄였습니다.

 
tara :

이것은 오랜 버그입니다. 이미 기능이라고 생각할 수 있습니다. :)

1. 차트에 무언가를 그립니다.

2. 스페이스바를 누르고 다른 쌍으로 이동

그래픽 개체는 차트에 남아 있습니다.

빌드 765가 작동하지 않고 객체는 실제로 남아 있지만 생성된 차트에 있습니다. :)

Py.Sy: Aleksey가 설명했듯이 물론 작동하지만 실제로 이 작업은 하나의 창에서 발생하고 차트 기호는 변경되지만 개체는 기호가 아닌 창에 첨부됩니다.))

 
AccountInfoInteger (ACCOUNT_TRADE_ALLOWED)=false는 계정이 잠겨 있음을 의미합니까? 아니면 그냥 무역 금지입니까? 차단된 계정에 대한 다른 기준은 무엇입니까? 그리고 거래 금지 외에 로그인이 여전히 통과된 경우 계정 차단이 표현되는 것은 정확히 무엇입니까(오류 64에 대해 말하는 것입니다)?
 
tara :

이것은 오랜 버그입니다. 이미 기능이라고 생각할 수 있습니다. :)

1. 차트에 무언가를 그립니다.

2. 스페이스바를 누르고 다른 쌍으로 이동

그래픽 개체는 차트에 남아 있습니다.

예시:

그리고 고쳐지지 않았나요?
 

여보세요. 설명서를 찾아보았지만 찾지 못했습니다. 질문은 무엇입니다. Expert Advisor를 내 로고로 시작할 때 이 이미지를 변경할 수 있습니까?