거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
346
평가:
(31)
게시됨:
2022.02.01 10:41
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동


    Moving Average expert는 하나의 이동 평균을 사용하여 거래 신호를 생성합니다. 이동 평균이 최근에 형성된 막대(막대 지수가 1임)에 가격이 닿을때 포지션에 진입하거나 청산합니다. 랏 사이즈는 특수한 알고리즘에 따라 최적화됩니다.

    expert adviser는 이동 평균과 시장 가격 차트의 상관을 분석합니다. 분석은 CheckForOpen() 함수에 의해 수행됩니다. 이전 막대가 시가보다 높지만 종가보다 낮은 방식으로 이동 평균이 막대를 만나면 BUY 포지션에 진입합니다. 이전 막대가 시가보다 낮지만 종가보다 높은 방식으로 이동 평균이 막대를 만나면 SELL 포지션에 진입합니다.

    expert에서 사용하는 자금 관리는 매우 간단하지만 효과적입니다. 이전 거래 결과에 따라 각 포지션에 대해 볼륨을 제어합니다. 이 알고리즘은 LotOptimized() 함수로 구현합니다. 기본 랏 사이즈는 최대 허용 위험을 기준으로 계산됩니다.

    lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);

    MaximumRisk 매개변수는 각 거래에 대한 기본 위험 비율을 표시합니다. 일반적으로 0.01(1%)과 1(100%) 사이의 값을 갖습니다. 예를 들어, 프리 마진(AccountFreeMargin)이 $20,500이고 자본 관리 규칙에 사용 위험이 2%로 규정되어 있는 경우 기본 랏의 크기는 20500 * 0.02 / 1000 = 0.41이 됩니다. 랏 크기의 정확도를 제어하고 결과를 허용 가능한 값으로 정규화하는 것이 매우 중요합니다. 일반적으로 랏은 0.1 단위로 허용됩니다. 0.41 볼륨의 거래는 수행되지 않습니다. 정규화하기 위해 NormalizeDouble() 함수는 포인트 다음의 자리 까지의 정확도로 사용됩니다. 그 결과 기본 랏 0.4가 생성됩니다. 프리 마진을 기반으로 하는 기본 랏 계산은 매매 성공 여부에 따라 거래량을 늘릴 수 있게 합니다, 예 추가 입금하여 매매 이는 거래의 효율성을 높이기 위해 기본적으로 자본 관리를 하는 메커니즘입니다.

    DecreaseFactor는 수익성이 없는 거래 후 랏 크기가 축소되는 정도입니다. 보통 값은 2,3,4,5 입니다. 이전 거래가 수익성이 없었다면 이후의 거래량은 수익성이 없는 기간 동안 DecreaseFactor의 계수만큼 감소할 것입니다. 이것은 자본 관리 알고리즘의 주요 기능입니다. 아이디어는 매우 간단합니다. 거래가 성공적이면 expert는 기본 랏으로 작업하여 최대의 이익을 얻도록 합니다. 수익이 나지 않은 첫 번째 거래 후 expert는 수익이 난 거래가 이루어질 때까지 "속도를 줄입니다". 알고리즘을 통해 "속도 감소"를 비활성화할 수 있으며 그렇게 하려면 DecreaseFactor = 0으로 지정해야 합니다. 마지막 연속적인 손실 거래의 금액은 거래 내역에서 계산됩니다. 기본 랏은 이러한 기준으로 다시 계산됩니다.

    if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);

    따라서 알고리즘은 수익성 없는 일련의 거래의 결과로 발생하는 위험을 효과적으로 줄일 수 있습니다. 이전에 계산한 결과가 랏 = 0이 될 수 있기 때문에 기능 종료 시 랏 크기에서 최소 허용 랏의 크기를 의무적으로 확인합니다. :

    if(lot<0.1) lot=0.1;

    expert는 주로 일간 및 테스트 모드 용 입니다. 거래는 새로운 바가 열릴 때만 이루어지므로 모든 틱 모델링 모드는 필요하지 않습니다.

테스트 결과는 리포트에서 확인 할 수 있습니다.

전략 테스터 리포트

이동 평균


심볼EURUSD (Euro vs US Dollar)
기간1 시간 (H1) 2003.01.08 00:00 - 2003.11.25 00:00
모델모든 틱(프랙탈 보간으로 사용 가능한 모든 틱의 모든 최소 시간 프레임 기반)
패러미터Lots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11;

테스트 바19371틱 모델656918모델링 품질25.00%

최초 예치금10000.00



총 실제 수익1695.20총 수익4293.20총 손실-2598.00
총 손실 대비 총 수익1.65거래당 수익10.80

Absolute drawdown40.35Maximal drawdown (%)318.50 (3.0%)


총 거래157숏 포지션 (won %)73 (26.03%)롱 포지션 (won %)84 (32.14%)

수익 거래 (% of total)46 (29.30%)손실 거래 (% of total)111 (70.70%)
최대수익 거래262.55손실 거래-91.00
평균수익 거래93.33손실 거래-23.41
최대연속 수익 (수익금)2 (387.15)연속 손실 (손실금)7 (-287.25)
최대치연속 수익 (수익 횟수)387.15 (2)연속 손실 (손실 횟수)-287.25 (7)
평균연속 수익 1연속 손실 3

MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/7927

Send Pending Order Send Pending Order

스크립트는 만료 데이터와 티켓 인쇄 번호와 함께 SELL STOP 펜딩 오더(지정가 주문)을 보냅니다.

Modify Pending Order Modify Pending Order

Modify - 목록에서 첫번째에 있는 매수 또는 매도 펜딩 오더를 선택하고, 선택한 펜딩 오더 데이터를 인쇄하고, 주문 수정 및 수정 후 펜딩 오더 데이터를 인쇄하는 스크립트.

기간 변환기 기간 변환기

표준 차트 주기를 사용하여 비표준 차트 주기를 생성하도록 설계되었습니다.

기간 변환기 기간 변환기

이 스크립트를 사용하여 비표준 차트 주기를 만드십시오.