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

 
사람들. 도와주세요, 제발. 질문은 ~이야. 나는 MACD 지표 에 대한 조언자를 만들고 있습니다. 실제로 여는 데 두 가지 조건과 닫는 데 두 가지 조건이 있습니다. 매수 청산을 위한 첫 번째 조건: 신호가 0보다 크고, MACD가 0보다 크며, 첫 번째 막대가 두 번째보다 작고, 두 번째 막대가 세 번째보다 큽니다. 두 번째 조건: 신호가 0보다 작고, MACD가 0보다 작고, 첫 번째 막대가 두 번째보다 작고, 두 번째 막대가 첫 번째보다 작습니다. 그러나 한 가지가 있습니다. 이러한 조건은 판매를 종료하기 위해 거래 조건을 완전히 복사합니다. 그들을 분리하는 방법? 말해 주세요. 히스토그램에서 피크가 반복되었다는 한 가지 아이디어가 있지만 피크가 이미 거기에 있었다는 것을 어떻게 설명합니까? Expert Advisor에서 이러한 메모리를 만드는 방법은 무엇입니까?
 

안녕하세요 여러분, 저는 고문을 쓰고 있습니다. 결론은 반대 방향으로 두 개의 스탑 오더 가 열리고 그 중 하나가 트리거되면 두 번째 오더는 삭제되지만 테스터에서는 매수 오더만 삭제됩니다.매도 스탑을 삭제하려고 할 때 오류 4108 잘못된 티켓이 발생합니다. 이해하도록 도와주세요. 주문을 삭제하는 기능을 삽입했습니다.

미리 감사드립니다!!!

void DellSell()
  {
   int dell;
   for ( int i= OrdersTotal () - 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
        {
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic)
           {
             if ( OrderType ()== OP_SELLSTOP && CountBuyDell()> 0 )
               dell= OrderDelete ( OrderTicket ());
             if (!dell)
              {
               Print ( "Ордер SellStop не удален" );
              }
           }
        }
     }
   return ;
  }
 

인사말. 표시기에서 데이터를 올바르게 가져오는 방법을 알려주세요.

빨간색과 파란색 아이콘의 데이터가 필요합니다. 해당 버퍼에는 도면이 없을 때 일부 천문 값이 있습니다. 나는 그것들을 10000으로 제한했습니다. 작동하는 것처럼 보이지만 놓친 신호가 있습니다. 어떻게 고치는 지? 내가 얻은 방법은 다음과 같습니다.

PriceHigh1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, 보간, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 4, 0);
PriceLow1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, 보간, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 3, 0);
if (PriceHigh1<10000) PriceHigh=PriceHigh1; 그렇지 않으면 PriceHigh = 0;
if (PriceLow1<10000) PriceLow=PriceLow1; 그렇지 않으면 낮은 가격 = 0;
파일:
 
Andrey Sokolov :

인사말. 표시기에서 데이터를 올바르게 가져오는 방법을 알려주세요.

빨간색과 파란색 아이콘의 데이터가 필요합니다. 해당 버퍼에는 도면이 없을 때 일부 천문 값이 있습니다. 나는 그것들을 10000으로 제한했습니다. 작동하는 것처럼 보이지만 놓친 신호가 있습니다. 어떻게 고치는 지? 내가 얻은 방법은 다음과 같습니다.

PriceHigh1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, 보간, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 4, 0);
PriceLow1=iCustom(NULL, 0, "TMAlCG_mladen", TimeFrame, HalfLength, Price, BandsDeviations, 보간, alertsOn, alertsOnCurrent, alertsOnHighLow, alertsMessage, alertsSound, alertsEmail, 3, 0);
if (PriceHigh1<10000) PriceHigh=PriceHigh1; 그렇지 않으면 PriceHigh = 0;
if (PriceLow1<10000) PriceLow=PriceLow1; 그렇지 않으면 낮은 가격 = 0;

나는 코드를 보지 않았지만 도움이 될 것이라고 생각합니다. 내가 틀릴 수 있습니다:

if (PriceHigh1!= INT_MAX ) PriceHigh=PriceHigh1;   else PriceHigh= 0 ;
if (PriceLow1!= INT_MAX ) PriceLow=PriceLow1;   else PriceLow= 0 ;
 
Vitaly Muzichenko :

나는 코드를 보지 않았지만 도움이 될 것이라고 생각합니다. 내가 틀릴 수 있습니다.

if (PriceHigh1!= INT_MAX ) PriceHigh=PriceHigh1;   else PriceHigh= 0 ;
if (PriceLow1!= INT_MAX ) PriceLow=PriceLow1;   else PriceLow= 0 ;
통과하지 못해 감사하지만 도움이되지 않았습니다.
 
Andrey Sokolov :
통과하지 못해 감사하지만 도움이되지 않았습니다.
"천문" 값이 있으므로 EMPTY_VALUE 와 비교하십시오.
 
ArraySearchDouble() 및 EquationDirect()는 이전 버전의 mql 4에서 사용할 수 있습니다. 그리고 새 버전에는 일종의 유사점이 있습니다.
 
27311065 :
ArraySearchDouble() 및 EquationDirect()는 이전 버전의 mql 4에서 사용할 수 있습니다. 그리고 새 버전에는 일종의 유사점이 있습니다.
이거 구버전에서 어디서 봤어? 이들은 자체 작성 함수입니다. 아니다?
 
팁 고마워
 

데이터 작업을 구성하는 가장 좋은 방법을 알려주십시오. 계산 결과에 따라 하위 그룹으로 나눌 숫자 시리즈가 제공되며 이러한 그룹은 배열에 저장해야하며 각 그룹에는 두 개의 그룹당 또는 더 많은 지표(숫자 그룹은 별도로 계산된 지표에 속함). 데이터는 이렇게 생겼습니다

1/1,2,3,4/23/33

2/1,4,5/26/11

3/3,4,5,33,56,38/21/44

음 등등