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

 
Valeriy Yastremskiy :

논리가 엉망이고 모든 것이 거기에 있으며 티켓 및 주문 유형 에 대한 배열이 있습니다. 어떤 이유로 주문을 열 때 채워지지 않고 TicketLimit 함수에서 배열을 0으로 재설정합니다. 첫눈에.

체스에서는 어떻습니까? 한 동작이 누락되었습니다. 이해하도록 노력하겠습니다. 고마워 발레리.

 

막대에 대한 통계를 올바르게 얻는 방법을 알려주세요.

이렇게 하면 숫자가 제대로 셉니다만 데이터를 사용하려고 하면 "0"이 나옵니다.

 //---
   int i,limit;
   datetime Start= 0 ;
   if ((rates_total-prev_calculated- 1 )<= 0 ) return ( 0 );
   limit=rates_total-prev_calculated- 1 ;
   for (i=limit; i>= 0 ; i--) 
     {
      Label1Buffer[i]=open[i];
      Label2Buffer[i]=close[i];
       if (Start!=time[i])
        {
         a+= 1 ;                                         // кол-во баров
         if (Label1Buffer[i] <Label2Buffer[i]) u+= 1 ;   // восходящие бары
         if (Label1Buffer[i] >Label2Buffer[i]) d+= 1 ;   // нисходящие бары
         if (Label1Buffer[i]==Label2Buffer[i]) b+= 1 ;   // Дожи
         Start=time[i];
        }
       if (Start==time[i]&&a<=limit)
        {
         Print (i, " / " ,u, " / " ,d, " / " ,b, " / " ,a, " / " ,limit); //
        }
       if (a==limit) 
        {
         ObjectCreate ( 0 , "STAT1" , OBJ_TEXT , 0 ,time[ 0 ],high[ 0 ]+ 750 * Point );
         ObjectSetText( "STAT1" ,d, 8 , "Arial" , clrBlack );
         ObjectCreate ( 0 , "STAT2" , OBJ_TEXT , 0 ,time[ 0 ],low[ 0 ]- 250 * Point );
         ObjectSetText( "STAT2" ,u, 8 , "Arial" , clrBlack );
         Print (d/u);
        }
     }
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 0
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 1 / 3041 / 2971 / 41 / 6053 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 2 / 3041 / 2970 / 41 / 6052 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 3 / 3041 / 2969 / 41 / 6051 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 4 / 3041 / 2968 / 41 / 6050 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 5 / 3041 / 2967 / 41 / 6049 / 6053
2021.08 . 11 17 : 09 : 46.884 StatisticsADR EURUSD,Daily: 6 / 3041 / 2966 / 41 / 6048 / 6053

아마도 이미 정상적인 방법이 있지만 "바퀴를 재발명"하고 있습니다)

말해 주세요.

 
MakarFX :

막대에 대한 통계를 올바르게 얻는 방법을 알려주세요.

이렇게 하면 숫자가 제대로 셉니다만 데이터를 사용하려고 하면 "0"이 나옵니다.

아마도 이미 정상적인 방법이 있지만 "바퀴를 재발명"하고 있습니다)

말해 주세요.

모든 int 변수가 있는 것 같고 나눗셈 결과가 0보다 작습니다. 따라서 0;

노력하다:

 Print (( double )d/u);
 
Galim_V :

체스에서는 어떻습니까? 한 동작이 누락되었습니다. 이해하도록 노력하겠습니다. 고마워 발레리.

в глобальной области
int ind=0, Ind=0;
......

 if (ParSar>MaxClose&&chekt== 1 ){

    ticket=_OrderSend( NULL ,OP_BUYSTOP, 0.01 ,MaxClose+(spread* Point ()), 0 );
ind++;
_Tacket[ind]=ticket; Ind=ind;
  }
    }
     if (MinClose!= 0 ){
   if (ParSar<MinClose&&chekt== 1 ){
    _price= NormalizeDouble ( MinClose-(spread* Point ()), Digits );
    ticket=_OrderSend( NULL ,OP_SELLSTOP, 0.01 ,_price, 0 );
ind++;
_Tacket[ind]=ticket; Ind=ind;
........

for(i=Ind,i<1,Ind--) // вместо Ind OrderTotal правильнее, если есть и другие ордера в терминале
{OrderSelect( _Tacket[i], SELECT_BY_TICKET )
проверки и действия
}
// Здесь запомнить тикет в массив _тикет и тип ордера тоже и запомнить последний индекс массива!!!

 //А потом в Ордер селект подставлять значение массива _тикет) Цикл по индексу массива _тикет от 1 до последнего индекса.
 
Mihail Matkovskij :

모든 int 변수가 있는 것 같고 나눗셈 결과가 0보다 작습니다. 따라서 0;

노력하다:

고맙습니다.
 
이전 프로젝트 에 도움을 주신 모든 분들께 다시 한 번 감사드립니다.

그런 다음 다음 Expert Advisor에 대한 또 다른 아이디어가 나타났습니다. 누군가 이미 ORBO(오픈 레인지 브레이크 아웃) 전략에 익숙하지 않을까요?

 

주문을 여는 것과 같은 정의를 단순화하는 기능이 있습니까?

 if (Bid < OpenPrice && Bid > OpenPrice- 10 * Point )
if (Ask > OpenPrice && Ask < OpenPrice+ 10 * Point )
결론은 가격이 이 범위에 속하지 않으면 주문이 열리지 않는다는 것입니다.
 
MakarFX :

주문을 여는 것과 같은 정의를 단순화하는 기능이 있습니까?

결론은 가격이 이 범위에 속하지 않으면 주문이 열리지 않는다는 것입니다.

자, 종이에 그림을 그립니다.

오픈 가격_____________________________

매기다_____________________________

OpenPrice-10*_포인트______________________________________


OpenPrice - Bid가 10*_Point를 넘지 않아야 함을 그림에서 알 수 있습니다.

 
Alexey Viktorov :

자, 종이에 그림을 그립니다.

오픈 가격_____________________________

매기다_____________________________

OpenPrice-10*_포인트______________________________________


OpenPrice - Bid가 10*_Point를 넘지 않아야 함을 그림에서 알 수 있습니다.

차이 모듈. 모듈이 없으면 상위 영역만 조건에 해당합니다. | OpenPrice - 입찰 |> 10*_포인트 오픈 조건

 
Alexey Viktorov :

자, 종이에 그림을 그립니다.

오픈 가격_____________________________

매기다_____________________________

OpenPrice-10*_포인트______________________________________


OpenPrice - Bid가 10*_Point를 넘지 않아야 함을 그림에서 알 수 있습니다.

놀랐 잖아