[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 573

 
//+------------------------------------------------------------------+
//|                                                       iTicks.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#include <WinUser32.mqh>
extern int  delay_MSecond = 2000;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   while(!IsStopped()){
      PostMessageA (WindowHandle (Symbol(), Period()), WM_COMMAND, 33324, 0);
      PostMessageA (WindowHandle (Symbol(), 0), RegisterWindowMessageA ("MetaTrader4_Internal_Message"), 2, 1);
      Sleep(delay_MSecond);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

전략 테스터에 대한 요청은 어떻게 이루어 집니까? 예를 들어 다음 명령을 실행하는 방법: "특정 세트 로 특정 간격으로 EA 테스트 실행 파일 및 완료 시, 보고서 저장"

 
alsu :
이렇게 다른 사람의 코드를 바로 알아차리기는 어렵습니다... 손을 떼면 - Neuron.Study() 함수에서 Imin,Imax,Jmin,Jmax 값을 확인하겠습니다. epoch 0에서 값 32는 lR로 전달되어 인덱싱에 사용됩니다(보통 0에서 size-1까지 배열을 인덱싱함). 오류가 바로 여기에서 뒤틀렸을 가능성이 큽니다.

실제로 오류는 이러한 계산과 관련이 있습니다. 감사해요
 
alkador :

전략 테스터에 대한 요청은 어떻게 이루어지나요? 예를 들어 다음 명령을 실행하는 방법: "특정 세트 로 특정 간격으로 EA 테스트를 실행 파일 및 완료 시, 보고서 저장"

시작 구성

클라이언트 터미널은 미리 정의된 설정으로 시작할 수 있습니다. 이를 위해 구성 파일의 이름이 매개변수로 클라이언트 터미널에 전달됩니다.

예를 들어:

 터미널.exe config\start.ini
  터미널.exe test1.txt
  terminal.exe "C:\Program Files\MetaTrader 4\config\settings25.ini"

파일의 전체 경로가 지정되지 않은 경우(Drive:\SubDirectory\FileName), 파일은 클라이언트 터미널의 디렉터리에서 검색됩니다. 구성 파일에는 다음 형식의 줄이 포함되어 있습니다.
[매개변수] = [값]

주석은 세미콜론(;)으로 시작하며 처리되지 않습니다.

구성 파일 매개변수는 일반 설정, 프록시 서버 설정( 터미널 설정 테이블의 "서버" 탭 ), FTP 설정( 터미널 설정 테이블의 "게시" 탭 ), 전문가 설정( 의 "전문가" 탭 )과 같은 여러 그룹으로 나눌 수 있습니다. 설정 테이블 ) 터미널 ) Expert Advisor 또는 스크립트의 단일 실행 설정, 전략 테스터 실행 설정.

일반 설정

  • 프로필 - 프로필 디렉터리의 하위 디렉터리 이름입니다. 차트는 지정된 프로필에 따라 클라이언트 터미널에서 열립니다. 이 매개변수를 지정하지 않으면 현재 프로필이 열립니다.

  • MarketWatch - 파일 이름(\symbolsets 디렉토리). 시장 감시 창에 표시할 상품 목록이 포함되어 있습니다. 이러한 파일은 "시장 조사 - 기호 집합 - 다른 이름으로 저장" 창 컨텍스트 메뉴 명령을 사용하여 얻을 수 있습니다.

  • 로그인 - 시작할 때 연결할 계정 번호입니다. 이 매개변수가 없으면 현재 로그인이 사용됩니다.

  • 암호 - 시스템에 로그인하기 위한 암호입니다. 클라이언트 단말기가 디스크에 개인 데이터를 저장하고 연결된 계정 번호가 목록에 포함된 경우 이 매개변수는 무시됩니다.

  • 서버 - 연결해야 하는 거래 서버의 이름입니다. 서버 이름은 config 디렉토리에 저장된 해당 srv 파일의 이름과 동일합니다. 연결된 계정에 대한 정보가 디스크에 저장되어 있으면 이 매개변수는 무시됩니다.

  • 자동 구성 - 자동 구성 설정을 활성화해야 하는지 여부에 따라 "true" 또는 "false"입니다. 이 매개변수가 없으면 현재 서버 설정의 값이 사용됩니다.

  • DataServer - 데이터 센터의 주소입니다. 서버 자동 구성이 활성화된 경우 이 항목을 무시할 수 있습니다. 이 매개변수가 없으면 현재 서버 설정의 값이 사용됩니다.

  • EnableDDE - DDE 서버를 활성화해야 하는지 여부에 따라 "true" 또는 "false"입니다. 이 매개변수가 없으면 현재 서버 설정의 값이 사용됩니다.

  • EnableNews - 뉴스 수신을 활성화해야 하는지 여부에 따라 "true" 또는 "false"입니다. 이 매개변수가 없으면 현재 서버 설정의 값이 사용됩니다.

예시:

 ; 공통 설정
  프로필=테스트 3
  MarketWatch=set2.set
  로그인=12345
  비밀번호=xxxxxx
  Server=MetaQuotes-데모
  자동 구성=거짓
  데이터 서버=192.168.0.1:443
  활성화DDE=참
  EnableNews=거짓

프록시 설정

  • ProxyEnable - 프록시 서버를 트레이드 서버와 통신하는 데 사용해야 하는지 여부에 따라 "true" 또는 "false"입니다.

  • ProxyServer - 프록시 서버 주소입니다.

  • ProxyType - 프록시 서버 유형입니다. "HTTP", "SOCKS4" 또는 "SOCKS5"일 수 있습니다.

  • ProxyLogin - 프록시 서버에 대한 인증을 위한 로그인입니다.

  • ProxyPassword - 프록시 서버에 액세스하기 위한 암호입니다.

나열된 매개변수 중 누락된 것이 있으면 클라이언트 터미널의 현재 설정이 사용됩니다( 클라이언트 터미널 설정 테이블의 "서버" 탭에 있는 프록시 설정 ).

예시:

 ; 프록시 설정
  ProxyEnable=참
  ProxyServer=proxy.company.com:3128
  프록시 유형=HTTP
  ProxyLogin=사용자45
  프록시 비밀번호=xxx

FTP 설정

  • FTPEnable - 발행물을 활성화/비활성화합니다. 허용되는 값은 "true" 또는 "false"입니다.

  • FTPPassiveMode - 수동 데이터 전송 모드를 활성화/비활성화합니다. 허용되는 값은 "true" 또는 "false"입니다.

  • FTPAccount - 상태 데이터를 FTP로 보내야 하는 계정 번호입니다.

  • FTPServer - FTP 서버 주소입니다.

  • FTPLogin - FTP 서버에서 인증을 위한 로그인입니다.

  • FTPPassword - FTP 서버에 액세스하기 위한 암호입니다.

  • FTPPath - 보고서가 있는 FTP 서버의 디렉터리 이름입니다.

  • FTPPeriod - 보고서를 FTP 서버로 보내는 빈도(분).

나열된 매개변수 중 하나라도 없으면 클라이언트 터미널의 현재 설정이 사용됩니다( 터미널 설정 테이블의 "게시" 탭 ).

예시:

 ; FTP 설정
  FTPEnable=참
  FTPPassiveMode=거짓
  FTP 계정=12345
  FTP서버=ftp.company.com
  FTP로그인=관리자
  FTP비밀번호=pAssWOrd123
  FTPPath=/inetpub
  FTP기간=10

전문가 설정

  • ExpertEnable - 전문가를 활성화/비활성화합니다.

  • ExpertDllImport - DLL 가져오기를 활성화/비활성화합니다.

  • ExpertDllConfirm - DLL 함수 호출의 수동 확인을 활성화/비활성화합니다.

  • ExpertExpImport - 외부 전문가 또는 MQL4 라이브러리에서 함수 가져오기를 허용/금지합니다.

  • ExpertTrades - 고문이 거래를 활성화/비활성화합니다.

  • ExpertsTradesConfirm - Expert Advisor에 의한 거래 작업의 수동 확인을 활성화/비활성화합니다.

주의: 전문가 그룹의 모든 매개변수는 "true" 또는 "false" 값만 사용할 수 있습니다.

나열된 매개변수 중 하나라도 없으면 클라이언트 터미널의 현재 설정이 사용됩니다( 터미널 설정 표의 "전문가" 탭 ).

예시:

 ; 전문가 설정
  ExpertEnable=true
  ExpertDllImport=true
  ExpertsDllConfirm=true
  ExpertExpImport=true
  ExpertTrades=true
  ExpertsTradesConfirm=거짓

Expert Advisor 및/또는 스크립트의 단일 실행을 위한 설정

  • 기호 - 단말기 시작 직후 차트를 열어야 하는 계측기의 이름입니다. 클라이언트 단말기를 닫은 후에는 이 추가 차트에 대한 정보가 저장되지 않습니다. 구성 파일 없이 터미널을 다시 시작하면 이 차트가 열리지 않습니다. 이 매개변수가 없으면 추가 차트가 열리지 않습니다.

  • 기간 - 차트 기간(M1, M5, M15, M30, H1, H4, D1, W1, MN). 이 매개변수가 없으면 H1이 사용됩니다.

  • 템플릿 - 차트에 적용할 템플릿 파일 이름(\templates 디렉토리).

  • Expert - 클라이언트 터미널이 시작된 후 시작되어야 하는 전문가의 이름입니다. Expert Advisor는 기호 및 기간 매개변수에 따라 열리는 차트에서 시작됩니다. Symbol 매개변수가 없으면 추가 차트가 열리지 않고 현재 프로필의 첫 번째 차트에서 Expert Advisor가 실행됩니다. 현재 프로필에 차트가 없으면 Expert Advisor가 실행되지 않습니다. 이 매개변수가 없으면 Expert Advisor도 시작되지 않습니다.

  • ExpertParameters - Expert Advisor의 매개변수가 있는 파일 이름(\experts\presets 디렉토리). 이러한 파일은 "매개변수 입력 - 저장" 버튼을 눌러 전문가의 속성 창에서 생성할 수 있습니다. 일반적으로 기본값이 아닌 매개변수를 저장하는 데 사용됩니다. 이 매개변수가 없으면 기본 매개변수가 사용됩니다.

  • 스크립트 - 클라이언트 터미널이 시작된 후 시작되어야 하는 스크립트의 이름입니다. 스크립트는 Expert Advisor와 동일한 규칙에 따라 실행됩니다(위에 설명됨).

  • ScriptParameters - 스크립트 매개변수가 있는 파일 이름(\experts\presets 디렉토리). 이 파일은 Expert Advisor와 동일한 방식으로 구성됩니다.

예시:

 ; 차트 열기 및 전문가 및/또는 스크립트 실행
  기호=EURUSD
  기간=H4
  템플릿=popular.tpl
  전문가=MACD 샘플
  ExpertParameters=macd.set
  스크립트=period_converter
  스크립트 매개변수=

전략 테스터 실행 설정

  • TestExpert - 테스트를 위해 시작할 전문가의 이름입니다. 이 매개변수가 없으면 테스트가 시작되지 않습니다.

  • TestExpertParameters - 매개변수가 있는 파일의 이름(\tester 디렉토리). 이러한 파일은 "파라미터 입력 - 저장" 버튼을 눌러 테스트 중인 전문가의 속성 창에서 생성할 수 있으며, 일반적으로 기본 파라미터 이외의 파라미터를 저장하는 데 사용됩니다. "Testing" 및 "Optimization" 탭의 테스트된 Expert Advisor의 다른 매개변수(또한 이 매개변수가 누락된 경우 "Input parameters" 탭에서) 는 \tester\[expert]에 자동으로 저장된 값으로 채워집니다. name].ini 파일은 마지막 테스트 후입니다.

  • TestSymbol - Expert Advisor가 테스트해야 하는 데이터의 계측기 이름입니다. 이 매개변수가 없으면 테스터에서 사용된 마지막 값이 사용됩니다.

  • TestPeriod - 차트 기간(M1, M5, M15, M30, H1, H4, D1, W1, MN). 이 매개변수가 없으면 H1이 사용됩니다.

  • TestModel - 테스트 모델에 따라 0, 1 또는 2입니다(모든 틱, 체크포인트, 시가 기준). 이 매개변수가 없으면 값 0(모든 눈금)이 사용됩니다.

  • TestOptimization - 최적화를 활성화/비활성화합니다. 허용되는 값은 "true" 또는 "false"입니다. 이 매개변수가 없으면 "false" 값이 사용됩니다.

  • TestDateEnable - "날짜 사용" 옵션을 활성화/비활성화합니다. 허용되는 값은 "true" 또는 "false"입니다. 이 매개변수가 없으면 "false" 값이 사용됩니다.

  • TestFromDate - YYYY.MM.DD 형식의 테스트 범위 시작 날짜. 이 매개변수가 없으면 1970.01.01로 가정합니다.

  • TestToDate - YYYY.MM.DD 형식의 테스트 범위 종료 날짜. 이 매개변수가 없으면 1970.01.01로 가정합니다.

  • TestReport - 테스트 보고서 파일 이름. 파일은 클라이언트 터미널의 디렉토리에 생성됩니다. 상대 경로를 지정할 수 있습니다(예: tester\MovingAverageReport"). 확장자가 보고서 파일 이름에 지정되지 않은 경우 확장자 ".htm"이 대체됩니다. 이 매개변수가 누락되면 테스트 보고서가 생성되지 않습니다. .

  • TestReplaceReport - 보고서 파일의 재기록을 활성화/비활성화합니다. 허용되는 값은 "true" 또는 "false"입니다. 값이 "false"이고 동일한 이름의 보고서 파일이 이미 있는 경우 대괄호로 묶인 일련 번호가 보고서 파일 이름에 추가됩니다. 예: "MovingAverageReport[1].htm". 이 매개변수가 없으면 "false" 값이 사용됩니다.

  • TestShutdownTerminal - 테스트 후 터미널 종료를 활성화/비활성화합니다. 허용되는 값은 "true" 또는 "false"입니다. 이 매개변수가 없으면 "false" 값이 사용됩니다. 테스트 중에 사용자가 "중지" 버튼을 누르면 사용자가 제어권을 얻었으므로 이 매개변수의 값이 "거짓"으로 재설정됩니다.

예시:

 ; 시작 전략 테스터
  TestExpert=이동 평균
  TestExpertParameters=ma0.set
  TestSymbol=EURUSD
  테스트 기간=H1
  테스트 모델=2
  테스트 최적화=거짓
  TestDateEnable=참
  TestFromDate=1970.01.01
  TestToDate=2006.06.06
  TestReport=MovingAverageReport
  TestReplaceReport=거짓
  TestShutdownTerminal=true

 
AndEv :
말하다. 누구든지 알고 있다면 이러한 질문은 0.5초마다 반복되는 스크립트가 필요합니다. 표시기의 재초기화와 함께 현재 차트의 "업데이트" 버튼을 "눌렀습니다". WindowRedraw() 및 Sleep(500)을 사용하여 루프 스크립트를 만들려고 했지만 표시기가 다시 초기화되지 않습니다.
이 라이브러리 에는 MT4를 관리하기 위한 다양한 기능이 있습니다. Expert Advisors 및 지표에 대한 차트 업데이트 기능을 포함합니다. 독립 실행형 기능도 있습니다. 스크립트를 한 번 실행하면 끝입니다. 언로드되었으며 차트는 MT4가 언로드될 때까지 계속 업데이트됩니다.
 

연기

Armen63 18.02.2012 14:47 |

안녕하세요 여러분 도와주세요 구현 방법을 모르겠습니다 .. 누군가 나에게 말해 줄 수 있습니까? xocu chtobi v sovetnike obshee chislo 판매 또는 구매 orderov kontrolirovalos int Total1 = OrdersTotal();

if (Total1 <= MaxOrders || MaxOrders == 0) tak ya kontroliruyu vse tipi orderov a nado po otdelnosti i dlya Sell i dlya buy

 

아르멘63으로

 int CountBuys() 
{
   int l_count_4 = 0 ;
   int l_ord_total_12 = OrdersTotal ();
   for ( int l_pos_8 = 0 ; l_pos_8 < l_ord_total_12; l_pos_8++) {
       OrderSelect (l_pos_8, SELECT_BY_POS, MODE_TRADES);
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != Magic) continue ;
       if ( OrderType () == OP_BUY) l_count_4++;
   }
   return (l_count_4);
}

int CountSells() 
{
   int l_count_4 = 0 ;
   int l_ord_total_12 = OrdersTotal ();
   for ( int l_pos_8 = 0 ; l_pos_8 < l_ord_total_12; l_pos_8++) {
       OrderSelect (l_pos_8, SELECT_BY_POS, MODE_TRADES);
       if ( OrderSymbol () != Symbol () || OrderMagicNumber () != Magic) continue ;
       if ( OrderType () == OP_SELL) l_count_4++;
   }
   return (l_count_4);
}
 

안녕하세요, 친애하는 포럼 사용자!

나는 최근에 mql4를 배우기 시작했고 내 자신의 Expert Advisor를 쓰기로 결정했습니다.

코드에 다음 조건을 작성하는 방법을 알려주십시오. 마지막 세 개의 매도호가를 받았을 때 각각의 후속 호가가 이전 호가보다 높으면(ask3>sk2>ask1), 구매 주문을 하십시오.

내 요점을 분명히 했으면 좋겠어), 뭔가 잘못되면 명확히 해달라고)

나는 당신의 도움에 대해 매우 감사 할 것입니다))

 
이와 같이
 datetime ask= TimeCurrent ();
   double ask1= 0 ,ask2= 0 ,ask3= 0 ;
   ask1=Ask;
   if (ask!= TimeCurrent ()){ask2=Ask;ask= TimeCurrent ()}
   if (ask!= TimeCurrent ()){ask3=Ask;}
   
어쩌면 내가 틀릴 수도 있습니다 - 나는 단지 배우는 중입니다
 
openlive :
예를 들어 내가 틀렸을 수도 있습니다.


우리는 고문이 각 틱 을 처리한다고 믿습니다. 그러면 조금 다르게 하는 것이 좋습니다.

 int start(){
   static double ask1= 1 , ask2=- 1 , ask3=- 1 ;
   ask3=ask2;
   ask2=ask1;
   ask1=Ask;

   if (ask3> 0 ) {
       if (ask1>ask2) {
         if (ask2>ask3) {
             //условие выполнено для бай
         }
      }
       if (ask1<ask2) {
         if (ask2<ask3) {
             //условие выполнено для селл
         }
      }
   }
}