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

 
psyman :


대단히 감사합니다. 내일 iTime과 iClose를 교체하는 방법에 대해 생각할 것입니다. 아마도 XP에 앉아 있을 것입니다.

 //+------------------------------------------------------------------+ 
//| Get Time for specified bar index                                 | 
//+------------------------------------------------------------------+ 
datetime iTime ( const int index, string symbol= NULL , ENUM_TIMEFRAMES timeframe= PERIOD_CURRENT )
  {
   if (symbol== NULL )
      symbol=m_symbol.Name();
   if (timeframe== 0 )
      timeframe= Period ();
   datetime Time [ 1 ];
   datetime time= 0 ;
   int copied= CopyTime (symbol,timeframe,index, 1 , Time );
   if (copied> 0 ) time= Time [ 0 ];
   return (time);
  }
//+------------------------------------------------------------------+
 

트롤과 같은 별도의 기능을 컴파일하여 Expert Advisors에서 불러오고 가져올 수 있도록 하는 방법은 무엇입니까?

.mqh 또는 dll과 같은

 
demonRDV :

여러분, 안녕하세요!

Expert Advisor가 실행 중일 때 속성을 입력할 수 없는 이유를 알려주시겠습니까? 나는 가곤 했는데 지금은 속성이 열리지 않는다. 터미널을 다시 시작하면 한 번 도움이 되었지만 문제는 1분 후에 다시 나타났습니다. 고문이 신선하고 터미널도 최근에 작동합니다. 고문의 속성에 어떤 문제가 있습니까?

고맙습니다!

인터럽트를 확인하지 않고 루프될 가능성이 높습니다.
소스가 있습니까? 이전에 이 EA에 문제가 있었나요?

 
Ghabo :

트롤과 같은 별도의 기능을 컴파일하여 Expert Advisors에서 불러오고 가져올 수 있도록 하는 방법은 무엇입니까?

.mqh가 호출되는 방식과 같이

이 같은.

고문에서
#include <trall.mqh>

예를 들어 코드에서 직접 trall 함수 를 호출합니다.

int trail_size = 20;
int trail_start = 30;
int trail_step = 5;


trall("",0,-1, trall_size, trall_start, trall_step); // 지정된 매개변수를 사용하여 계정의 모든 주문을 추적합니다.

정수 마법 = 345;
trall(_심볼, 매직, OP_BUY, trall_size, trall_start, trall_step); // 주어진 마법과 주어진 매개변수를 사용하여 현재 악기에 대한 BUY 주문만 추적합니다.

파일:
trall.mqh  27 kb
 
Maxim Kuznetsov :

단축키 F7을 누르세요 :-)

조언자 아이콘을 클릭해도 항상 작동하는 것은 아니며 아이콘이 다른 개체에 의해 차단될 수 있으며 조언자가 메시지 대기열 및 다른 100500 이유를 로드합니다.

네, 알아냈습니다. 도움이 되지 않는다)
 
Nikolay Khrushchev :

이 같은.

고문에서
#include <tall.mqh>

Duc는 트롤 파일을 별도로 컴파일해야 하며 확장자가 ex4여야 함을 의미했습니다.

 #include <trall.ex4>

또는

 #import "trall.ex4"
    ...
    ...
    ...
#import
트롤 기능 자체 무엇을 삽입해야 합니까?
 
Ghabo :

Duc는 트롤 파일을 컴파일해야 함을 의미했습니다.

또는

트롤 기능 자체 무엇을 삽입해야 합니까?

왜 그런 변태인가? 기능을 EA에 작성하거나 .mqh 파일에서 제안한 대로 작성하는 것이 더 쉽지 않습니까?

아니면 후행이 있지만 소스 코드가 없는 EA가 있습니까? 그러나 함수 이름 뒤에 내보내기 수식어가 없으면 다른 Expert Advisor로 가져올 수 없습니다.

그러한 라이브러리의 또 다른 단점은 어드바이저와 함께 어드바이저와 함께 새 터미널로 끌어야 한다는 것입니다. 그리고 포함된 .mqh 파일을 사용하면 컴파일된 Expert Advisor만 다른 터미널에 복사할 수 있습니다.

Экспортирование функций - Функции - Основы языка - Справочник MQL4
Экспортирование функций - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Экспортирование функций - Функции - Основы языка - Справочник MQL4
 
Alexey Viktorov :

왜 그런 변태인가?

그런 페티쉬)

이것이 작동하는 방식입니다

 #property strict
void trall( string tr_symbol, int tr_magic, int tr_type, double tr_trall_size, double tr_trall_start, double tr_trall_step= 1 ) export {
   if (tr_type> 1 ) return ;
   int ti;
   for (ti= OrdersTotal ()- 1 ;ti>= 0 ;ti--) if ( OrderSelect (ti, SELECT_BY_POS , MODE_TRADES )) {
       if ( OrderSymbol ()!=tr_symbol && tr_symbol!= "" ) continue ;
       if ( OrderMagicNumber ()!=tr_magic && tr_magic> 0 ) continue ;
       if (tr_type>= 0 && OrderType ()!=tr_type) continue ;
       double work_price;
       double work_pp = SymbolInfoDouble ( _Symbol , SYMBOL_POINT );
       int     work_dig = SymbolInfoInteger ( _Symbol , SYMBOL_DIGITS );
       if (tr_trall_size> 0 ) {
         if ( OrderType ()== 0 ) {
            work_price = SymbolInfoDouble ( _Symbol , SYMBOL_BID );
             if ( NormalizeDouble (work_price-(tr_trall_size+tr_trall_step)*work_pp, work_dig)> NormalizeDouble ( OrderStopLoss (), work_dig) && 
               NormalizeDouble (work_price-tr_trall_start*work_pp, work_dig)>= NormalizeDouble ( OrderOpenPrice (), work_dig)) 
                   OrderModify ( OrderTicket (),- 1 , 0 , NormalizeDouble ( work_price-tr_trall_size*work_pp, work_dig),- 1 ,- 1 );
            }
         if ( OrderType ()== 1 ) {
            work_price = SymbolInfoDouble ( _Symbol , SYMBOL_BID );
             if (( NormalizeDouble (work_price+(tr_trall_size+tr_trall_step)*work_pp,work_dig)< NormalizeDouble ( OrderStopLoss (),work_dig) || OrderStopLoss ()== 0 ) && 
               NormalizeDouble (work_price+tr_trall_start*work_pp,work_dig)<= NormalizeDouble ( OrderOpenPrice (),work_dig)) 
                   OrderModify ( OrderTicket (),- 1 , 0 , NormalizeDouble (work_price+tr_trall_size*work_pp, work_dig),- 1 ,- 1 );
         }
      }
   }
}

아니면 내가 거기에 넣지 않고 수출 합니까?

 
Ghabo :

그런 페티쉬)

이것이 작동하는 방식입니다

아니면 내가 거기에 넣지 않고 수출 합니까?

거기에 있는 것 같습니다. 우리는 여전히 따옴표나 꺾쇠 괄호 안에 가져오기를 등록하는 방법을 알아내야 합니다. 라이브러리 폴더 또는 이 라이브러리 의 기능을 가져오는 전문가가 있는 동일한 위치에서 이 파일의 위치에 따라 다릅니다. 아주 오랫동안 실험했는데 기억이 안나는데 어떻게 해야할지 찾다보니 미안하고 게으르네요.
 
psyman :


대단히 감사합니다. 내일 iTime과 iClose를 교체하는 방법에 대해 생각할 것입니다. 아마도 XP에 앉아 있을 것입니다.

다음은 레이블의 순수 코드입니다. 차트를 스크롤하는 동안에도 차트를 전환한 후에도 입찰가 이후에 실행됩니다. 십자선을 따라 달리고 이런 식으로 지정된 오프셋을 기억한 다음 계속해서 입찰에 집중합니다.

PS hp도 최근에 이미 변경되었습니다. 모든 것이 이미 실패하기 시작했고 일부 사이트는 브라우저 업데이트가 필요하며 xp에서 더 이상 업데이트할 수 없습니다.

램 한계 3.7gb 나도 버티는거 지겹다

xp의 경우 모든 프로세서 코어에서 올빼미 테스트를 지원하지 않습니다.

파일: