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

 
Iurii Tokman :

코드를 삽입해야 합니다. Alt+S
기능은 어디에 있습니까?
어떻게 컴파일 했습니까? 실수 없어?

그의 코드는 지연과 함께 작동하고 기능은 위치와 함께 작동합니다. 약간의 조정이 필요합니다.

 
Vitaly Muzichenko :

그의 코드는 지연과 함께 작동하고 기능은 위치와 함께 작동합니다. 약간의 조정이 필요합니다.

맞습니다 . 작업은 Sellstop 및 buystop 지정가 주문으로만 수행됩니다. 수정해야 할 사항은 무엇입니까?

 
sibiriyak73 :

맞습니다 . 작업은 Sellstop 및 buystop 지정가 주문으로만 수행됩니다. 수정해야 할 사항은 무엇입니까?

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг торгов сегодня.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isTradeToDay( string sy= "" , int op=- 1 , int mn=- 1 ) {
   int i, k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY )) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
               if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return (True);
            }
          }
        }
      }
    }
  }
  k= OrdersTotal ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES )) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()<=6) { 
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
               if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return (True);
            }
          }
        }
      }
    }
  }
   return (False);
}
 
Vitaly Muzichenko :

이 기능은 매수 측을 위한 것입니까 아니면 매수 및 매도를 위한 것입니까?

6 가지 주문 유형이 노란색으로 강조 표시되어 있다는 사실을 그대로 두세요?

오류 없이 컴파일되었지만 주문을 열지 않음

 
sibiriyak73 :

이 기능은 매수 측을 위한 것입니까 아니면 매수 및 매도를 위한 것입니까?

6 가지 주문 유형이 노란색으로 강조 표시되어 있다는 사실을 그대로 두세요?

오류 없이 컴파일되었지만 주문을 열지 않음

이것은 모든 유형에 적용되며 올바르게 적용될 때 작동해야 합니다.


추신: 작동하지 않을 수 있는 이유와 방해가 되는 요소를 논리적으로 파악하십시오.

 

그리고 함수를 한 번 삽입하는 것이 더 정확할 수도 있지만 어쨌든 어떤 유형이 이미 존재하거나 시장에 있었는지 여부는 중요하지 않습니다.

 if (Hour()==Nac && ! isTradeToDay ( Symbol ()))
 {
   if ( iOpen ( NULL , PERIOD_D1 , 0 )< iOpen ( NULL , PERIOD_D1 , 1 ))
   {
     int ticket1= OrderSend ( Symbol (),OP_SELLSTOP, 1.5 ,limit1, 3 ,SL1,TP1, NULL , 0 , 0 , clrRed ); //Здесь открываем
   }

   if ( iOpen ( NULL , PERIOD_D1 , 0 )> iOpen ( NULL , PERIOD_D1 , 1 ))
   {
     int ticket= OrderSend ( Symbol (),OP_BUYSTOP, 1.5 ,limit, 3 ,SL,TP, NULL , 0 , 0 , clrBlueViolet ); //Здесь открываем
   }
 }
 
황소의 새해 복 많이 받으세요! 모든 황소 성장! :)

가장 낮은 가격과 가장 높은 가격 사이의 마지막 날(또는 한 시간)의 포인트 가치를 계산하는 방법을 알려주세요.
 
Порт-моне тв :
황소의 새해 복 많이 받으세요! 모든 황소 성장! :)

가장 낮은 가격과 가장 높은 가격 사이의 마지막 날(또는 한 시간)의 포인트 가치를 계산하는 방법을 알려주세요.
( High[1] - Low[1] ) / Point()
 
모두에게 좋은!

이 코드가 무엇을 의미하는지 또는 더 정확하게는 원칙적으로 어떻게 작동하는지 알려주실 수 있습니까? 이 경우 매크로 대체가 사용되며 이는 주문을 여는 주요 조건입니다. 추신. 전역 변수 는 어디에서도 수정되지 않습니다.

 #define MARKET_WATCH          ( 0 )

bool   Gl_Var_MarketWatch    =  MARKET_WATCH;   // глобальная переменная

if (Gl_Var_MarketWatch) ticket= OrderSend (symbol_name,op,ll,pp,MaxSlippage, 0 , 0 ,co,mn, 0 ,clOpen);
       else ticket= OrderSend (symbol_name,op,ll,pp,MaxSlippage,sl,tp,co,mn, 0 ,clOpen);
Макроподстановка (#define) - Препроцессор - Основы языка - Справочник MQL4
Макроподстановка (#define) - Препроцессор - Основы языка - Справочник MQL4
  • docs.mql4.com
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. expression может...
 
Tom Seljakin :
모두에게 좋은!

이 코드가 무엇을 의미하는지 또는 더 정확하게는 원칙적으로 어떻게 작동하는지 알려주실 수 있습니까? 이 경우 매크로 대체가 사용되며 이는 주문을 여는 주요 조건입니다. 추신. 전역 변수 는 어디에서도 수정되지 않습니다.

아마도 그것은

MARKET_WATCH,                               // окна "Обзор рынка"