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

 
Andrey Barinov :

컴파일 방법은 다음과 같습니다.


고맙습니다. 십여 개의 컴파일 오류를 수정하면 작동하는 mql4 코드 가 mql5 표시기 로 바뀔 것이라고 순진하게 생각했습니다.

그는 하루의 최대, 최소를 보여주고 싶지 않습니다. 목표에서 얼마나 떨어져 있습니까?

 
bij :

고맙습니다. 십여 개의 컴파일 오류를 수정하면 작동하는 mql4 코드 가 mql5 표시기 로 바뀔 것이라고 순진하게 생각했습니다.

그는 하루의 최대 최소값을 표시하고 싶지 않습니다. 목표에서 얼마나 떨어져 있습니까?

모르겠어요 :)

ArraySetAsSeries를 사용하여 OnCalculate의 맨 처음에 버퍼 배열을 확장해 보십시오.

 
bij :

고맙습니다. 십여 개의 컴파일 오류를 수정하면 작동하는 mql4 코드 가 mql5 표시기 로 바뀔 것이라고 순진하게 생각했습니다.

그는 하루의 최대, 최소를 보여주고 싶지 않습니다. 목표에서 얼마나 멀리 떨어져 있습니까?

여기에 하루의 최대값과 최소값을 표시하기 위해 엄청난 수의 코드 행이 있습니다 ???
 
Alexey Viktorov :
여기에 하루의 최대값과 최소값을 표시하기 위해 엄청난 수의 코드 행이 있습니다 ???
예, 하루의 마감도 있습니다. 그러나 이것은 역사에 있는 것이며 마지막 날만이 아닙니다. 이것이 어려움입니다.
 
bij :
예, 하루의 마감도 있습니다. 그러나 이것은 역사에 있는 것이며 마지막 날만이 아닙니다. 이것이 어려움입니다.

이것이 당신의 코드입니까? 아니면 주문을 위해 작성되었습니까?

MT4에서 어떻게 보이는지 사진을 보여주세요?

 
Alexey Viktorov :

이것이 당신의 코드입니까? 아니면 주문을 위해 작성되었습니까?

MT4에서 어떻게 보이는지 사진을 보여주세요?

네트워크 표시기. MT4는 손에 없습니다, 나는 그것을 말로 말할 것입니다. 하루의 시작부터 끝까지, 그날의 고가, 저가 및 종가 가격으로 표시됩니다. 하지만 당일 종가 에 선 대신 21시 바 종가에 선을 긋고 싶습니다

어쩌면 이것은 공상보다 쉽게 할 수 있습니다.

 

나는 연속으로 손실을 계산하는 기능에서 동시에 4개의 위치를 닫습니다. 하나의 위치로 계산하는 방법은 무엇입니까?

닫기, 미끄러짐으로 인해 동일한 가격이 아닐 수 있으며 시간이 다를 수 있습니다.

시도:

 int CountLOS()
  {
   double priceold= 0 ;
   datetime datold;
   int count= 0 ;
   for ( int trade= OrdersHistoryTotal ()- 1 ;trade>= 0 ; trade--)
     {
       OrderSelect (trade, SELECT_BY_POS , MODE_HISTORY );
       if ( OrderSymbol ()== Symbol ())
        {
         if ( OrderType ()== OP_BUY || OrderType ()== OP_SELL )
           {
             if ( OrderMagicNumber ()==_MagicNumber)
              {
               if ( OrderProfit ()<= 0 &&datold != OrderCloseTime ()) {count++; datold = OrderCloseTime ();}
               //if(OrderProfit()<=0&&priceold !=OrderClosePrice()) {count++; priceold =OrderClosePrice();}
               else    break ;
              }
           }
        }
     }
   return (count);
  }
 
lil_lil :

나는 연속으로 손실을 계산하는 기능에서 동시에 4개의 위치를 닫습니다. 하나의 위치로 계산하는 방법은 무엇입니까?

닫기, 미끄러짐으로 인해 동일한 가격이 아닐 수 있으며 시간이 다를 수 있습니다.

미끄러짐으로 인한 가격은 시간도 다릅니다. 하나는 두 번째가 끝날 때 닫히고 다른 하나는 다음이 시작될 때 닫힙니다. 마감하는 동안 주문 티켓 을 기억하십시오. 파일에 쓸 수 있습니다...

 
lil_lil :

나는 연속으로 손실을 계산하는 기능에서 동시에 4개의 위치를 닫습니다. 하나의 위치로 계산하는 방법은 무엇입니까?

닫기, 미끄러짐으로 인해 동일한 가격이 아닐 수 있으며 시간이 다를 수 있습니다.

시도:

나는 마지막으로 닫힌 것들을 반복합니다. 마지막에 닫은 쪽이 마이너스라면 120초(2분) 동안 닫힌 쪽을 모두 보고 총 수익을 계산합니다.

 
lil_lil :

나는 연속으로 손실을 계산하는 기능에서 동시에 4개의 위치를 닫습니다. 하나의 위치로 계산하는 방법은 무엇입니까?

닫기, 미끄러짐으로 인해 동일한 가격이 아닐 수 있으며 시간이 다를 수 있습니다.

시도:

이 같은:

 datetime _oct= 0 ,time= 0 ,_pt= 0 ;
 int _cnt= 0 ;
   for ( int i= OrdersHistoryTotal ()- 1 ; i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY )) {
     if ( OrderSymbol ()==symb && OrderMagicNumber ()==mg) {
     int OrdersType= OrderType ();
     // BUY && SELL
     if (OrdersType<= 1 ) {
       CopyTime ( OrderSymbol (), PERIOD_D1 , 0 , 1 ,itime);
       if (( OrderCloseTime ()>=itime[ 0 ] && OrderCloseTime ()<itime[ 0 ]+ 86400 )) {
         _Get.Hist.BS._ProfitDaily+= OrderProfit ()+ OrderCommission ()+ OrderSwap (); // Profit за сегодня
       }
       // 120 секунд разницы между закрытием первой и последней в сетке
       _oct= OrderCloseTime ();
       if (_cnt== 0 && _oct!= 0 ) time=_oct;
         if (_oct+ 120 >=time) {
          _Get.Hist.BS._ProfitOldClose+= OrderProfit ()+ OrderSwap ()+ OrderCommission (); // Profit последнего трейда
          _cnt++;
        }
     }
  }}}