Tuesday 6 February 2018

외환 신경망 표시기


세계적인 무역 시스템.
FOREX 예측 포레스트 로봇 이진 옵션 로봇 이진 옵션 신호 주식 거래 로봇 스톡 예측 NADEX 로봇 틈새 시장 거래 로봇 알고리즘 트레이딩 소프트웨어.
신경망 알고리즘에 기반.
95 % 정확한 예측, 90 % 일일 환율, 250 % 이익 실현!
Forex 로봇 Scalper 진행자.
Forex Scalper Profit Progressor Robot EA는 트 렌딩, 비 트렌드, 휘발성 및 비 휘발성의 진정한 멀티 마켓 상태 로봇입니다. 모든 주요 통화 쌍을 거래합니다. 하루 50-100 회 거래. 매월 250 %의 이익을 올리십시오. 이 복잡한 Forex Robot Scalper EA를 사용하면 안정적이고 탄탄한 수익을 올릴 수 있습니다. 계정에 대해 매우 안전합니다. 외환 초보자 또는 고급 상인을위한.
라이브 거래 신호 위젯.
라이브 거래 신호 무료 위젯. EURUSD 1 분. 시연 목적으로 만 제공되는 실시간 비 - 재 도색 신호. 100 % 비 지연 신호를 찾고 계십니까? 바이너리 옵션 신호 또는 확률 바이너리 옵션 신호 표시기 또는 바이너리 옵션 다중 신호를 선택하십시오.
바이너리 옵션 신호.
60 초 바이너리 옵션 신호 표시기 (Metatrader 기반). 일일 평점 90 %. 하루에 100 개 이상의 신호. 1 시간당 100 % 이익! 비 Repainting! 사용하기 쉽고 모든 브로커, 자산과 함께 사용할 수 있습니다. 정확성은 실제 거래 계정으로 확인되었습니다. 고급 신경 회로망 알고리즘을 기반으로합니다. 200 개 이상의 바이너리 옵션 브로커로 테스트를 해보고 안정적인 높은 수익을 올렸습니다.
Forex 신호 지표.
외환 표시기 3D 신호 - Forex 신호 새로운 세대! Forex 지표는 3D 차원에서 신경망 분석 시장을 기반으로하며 통계적으로 신뢰할 수 있고 정확한 외환 거래 신호를 실시간으로 생성합니다. 신호는 직관적이며 사용하기 쉽고 탁월한 승률을 유지합니다. 500+ pips avg. 월간 수익.
IG 트레이딩 로봇.
IG Trading Robot은 IG Trading Platform을 통해 수익성있게 거래하도록 특별히 설계된 완전 자동화 된 거래 소프트웨어입니다. 수익성 지표, 환율 (외환 시장, 통화), 암호 해독, 주식 (주식 시장), 상품, 채권 및 요율, ETF 등을 거래 할 수 있습니다. 낮은 위험으로 신속하게 거래 계좌를 성장시킬 수 있습니다.
1 년 가입시 $ 1500.
바이너리 옵션 자동 트레이더.
바이너리 옵션 자동 트레이더 300 % 이익! Core Liqudity Markets, NoaFX, GDMFX, Grandcapital, WForex 및 기타와 같은 Metarader 기반 중개인을위한 100 % 이진 자동 트레이더. 신경망 알고리즘을 기반으로합니다. 내장 계정 보호 및 위험 관리 시스템.
Dukascopy 로봇.
Dukascopy 바이너리 옵션 로봇은 매일 50 개 이상의 거래를합니다! Dukascopy 중개인을위한 100 % 자동화 된 바이너리 옵션 로봇! 60 초 및 15 분의 이진 옵션 거래. 예금 보호, 위험 관리 시스템이 내장되어 있습니다. 75 % -90 % 승리율.
1 년 가입시 $ 1500.
Metatrader - Nadex 무역 복사기.
Metatrader Nadex Trade Copier는 MT4의 거래를 Nadex 거래 플랫폼으로 직접 복사하고 거래를 구현합니다. 즉시. 신뢰할 수있다. 모든 거래 전략을 테스트 및 자동화하고 Metatrader에서 직접 완전 자동 파일럿을 교환 할 수 있습니다. 모든 자산에서 작동합니다.
Nadex 무역 로봇.
Nadex Trading Robot은 Nadex 바이너리 옵션을 통해 수익성있는 거래를 위해 특별히 설계된 완전 자동화 된 거래 소프트웨어입니다. 하루 50 개 이상의 거래! 100 % 자동! 예금 보호, 돈 관리 시스템이 내장되어 있습니다. 신경망 저 위험 전략을 기반으로합니다.
1 년 가입시 $ 1500.
확률 이진 옵션 신호 표시기.
Probabilistic Binary Options Metatrader의 신호 표시기 90 %의 정확하고 신뢰할 수있는 거래 신호를 생성합니다. 비 Repainting! 선진 지표는 상인이나 투자자에게 언제 사면되는지와 수익성이있는 경우 판매 할지를 지시합니다.
이진 옵션 무역 신호.
10 분 및 15 분 이진 옵션 Metatrader (MT4)의 무역 신호 표시기. 매일 83 %의 승리율! 하루 30 + 거래 신호! 100 % 비 반복! 100 % 믿을 수있는! 고품질 거래 기회가 발생할 때 이진 옵션 (BO) 신호 표시기가 조언 해줍니다.
IQ 옵션 무역 복사기.
IQ Option Trade Copier Plugin을 대신하여 휴식하십시오. IQ Option Trade Copier는 Metatrader의 거래를 IQ 옵션 플랫폼에 직접 복사합니다. 수익성 높은 전략을 자동화하고 완전 자동 파일럿을 트레이드 할 수 있습니다. 즉시 그리고 확실하게 거래를 복사합니다.
이진 옵션 무역 복사기.
이진 옵션 무역 복사기. Metatrader에서 직접 이진 옵션 플랫폼으로 거래를 복사하고 중개인의 계좌로 거래를 구현합니다. 즉시. 신뢰할 수있다. 수익성 높은 전략을 자동화하고 Metatrader에서 직접 완전 자동 파일럿을 사용할 수 있습니다.
Forex 예측 지표.
신경 네트워크 Metatrader에 대한 Forex 예측 지표. 90 % 정확한 거래 신호를 생성합니다. 한 달에 최대 250 % 이익! 높은 가격, 낮은 가격, 가까운 가격, 가격 이동 방향을 예측합니다. 100 % 비 Repainting! 모든 통화 쌍 (모든 시간 프레임)과 함께 작동합니다.
외환 로봇 Intraday Scalper.
그것은 당신이 사용하고 손가락을 들어야하지 않고 매우 빠른 시간에 거대한 계정으로 거래 계정의 가장 작은 성장할 수있는 최고의 forex scalping 로봇입니다! Forex Intraday Scalper EA는 Forex 시장을 분석하여 최고의 출입국 점을 찾습니다.
Forex 무역 로봇.
한 달에 250 %의 이익. 최대 삭감 3.5 %. 100 % 자동 거래. 신경망 및 유전자 알고리즘에 기반한 Metatrader 용 지능형 외환 거래 로봇 (외환 로봇 또는 EA). 자체 학습 및 자체 업데이트 로봇은 90 %의 성공 확률로 위치를 엽니 다.
Metatrader - 대화 형 중개인 브릿지.
Metatrader - 대화 형 중개인 Trader Copier Bridge는 Metatrader (MT4, MT5)에서 수동 또는 자동으로 직접 거래 할 수있는 Trader Workstation (TWS)에 대한 프로그램 가능 확장 프로그램입니다. 모든 전략을 자동화합니다.
Forex 로봇 Scalper.
매월 300 %의 이익. 최대 인출 10 %. 90 % 성공적인 거래. 100 % 자동 거래. 신경망 기반의 Metatrader를위한 지능형 외환 거래 로봇 (외환 로봇 또는 EA). Forex Robot Scalper는 손실을 최소화하면서 하루에 많은 수의 거래를 보여줍니다.
Nadex 신호.
Nadex Signals and Prediction Indicator는 Nadex Binary Options를 통해 수익성있게 거래 할 수 있도록 특별히 설계되었습니다. 90 % ITM Nadex 신호. 하루 50 개 이상의 신호. 최고의 가장 신뢰할 수있는 Nadex 신호 표시기로 일관된 수익을 창출하십시오.
비트 코인 예측 지표.
신경 회로망에 기반한 Metatrader의 90 % 정확한 Bitcoin 예측 지표. 스트리밍 실시간 예측 및 거래 신호를 생성합니다. 표시기는 다시 칠하지 않습니다. 가격, 가격 이동 방향을 예측하고 반전 지점을 감지합니다.
IQ 옵션 로봇.
IQ 옵션 로봇은 바이너리 옵션을 100 % 자동화합니다. 75 % -90 % 매일 승리율! 하루 50-100 회 거래. 신경망 알고리즘을 기반으로합니다. 지능형 IQ 옵션 로봇은 자동으로 신호를 생성하고 로트 크기를 설정하며 계좌 보호 시스템을 갖추고 있습니다.
IQ 옵션 로봇 멀티.
IQ 옵션 로봇 멀티는 같은 시간에 9 개의 차트를 교환하고 승리합니다. 100 % 자동화 됨. 75 % -90 % 매일 승리율! 하루 50-100 회 거래. 마틴 게일 없습니다. 낮은 위험 전략. 지능형 IQ 옵션 로봇은 자동으로 신호를 생성하고 로트 크기를 설정하며 계좌 보호 시스템을 갖추고 있습니다.
올림픽 무역 로봇.
올림픽 무역 로봇 단순히 최고의 안전하고 안전한 자동 거래 소프트웨어, 시간과 시간을 다시 사용자가 자신의 바이너리 옵션 거래에 이익을 극대화하는 데 도움이됩니다. 올림픽 무역 로봇 로봇은 바이너리 옵션을 100 % 자동 거래합니다. 75 % -90 % 매일 승리율!
Forex 무역 복사기.
전 세계 인터넷 및 동일한 컴퓨터에서 실행되는 여러 MT4 터미널간에 인터넷을 통해 서로 다른 컴퓨터간에 즉각적이고 안정적으로 거래를 복사하십시오. 모든 Forex 브로커와 MT4 플랫폼에서 호환됩니다. 모든 유형의 시장 주문을 복사하십시오.
이진 옵션 로봇.
매월 300 % + 이익! 하루에 100 개 이상의 거래! 웹 기반 중개인을위한 100 % 자동화 된 바이너리 옵션 로봇! 60 초 및 30 초 바이너리 옵션을 교환합니다. 예금 보호, 돈 관리 시스템이 내장되어 있습니다. 연결된 브로커 계정으로 직접 거래를 자동 실행합니다.
1 년 가입시 $ 1500.
2 진 시간 신호.
유익한 바이너리 옵션 신호와 Autotraders를 찾고 계십니까? 성공할 수있는 믿을 수없는 이원 신호가 있습니다. 이진 옵션 신호 표시기 (Metatrader 5 기반). 일일 평점 90 %. 하루 50 개 이상의 신호. 비 Repainting! 어떤 브로커와도 작동합니다. 신경망을 기반으로합니다.
NinjaTrader의 바이너리 옵션 신호.
60 초 이진 옵션 신호 표시기 (NinjaTrader 기반). 90 % 일일 승률, 믿을만한 거래 신호. 하루 70 개 이상의 신호. 비 Repainting! 최고 정확! 사용하기 쉽고 모든 브로커, 자산과 함께 사용할 수 있습니다. 모든 바이너리 옵션 플랫폼과 동기화됩니다. 신경망을 기반으로합니다.
골드 무역 로봇.
Gold Trading Robot은 GOLD 1H 및 SILVER 1H 용으로 개발되었습니다. 월 360 %의 이익. 최대 인출 10 %. 90 %의 우승 트레이드 100 % 자동 거래. 장기 전략. 각 주문은 Stop Loss와 Take Profit으로 보호됩니다. 완전히 최적화 된 설정.
온라인 주식 예측가.
90 % 정확함. 실시간 스트리밍 거래 신호를 생성합니다. 모든 기간 동안 스트리밍 라이브 데이터 피드를 설치했습니다. 가격, 가격 이동 방향, 추세를 예측하여 거래 신호를 생성합니다. 설치할 필요가 없습니다. 새로운 신호는 실시간 차트에 동적으로 전달됩니다.
1 개월 구독에 260 달러.
온라인 Forex Predictor.
정확한 수익성 높은 Forex Predictive Signals을 통한 헤지 펀드와 같은 거래. 페어 트레이딩 시장 중립적, 통계적 재정 거래, 롱 / 숏 및 스프레드 트레이딩은 헤지 펀드 중에서 가장 인기 있고 수익성있는 트레이딩 전략입니다. 한달에 이익 300-700 pips.
1 개월 구독에 260 달러.
온라인 골드 예측.
95 % 정확함. 예측 가격, 가격 이동 방향, 추세가 매수 / 매도 신호를 생성합니다. 비 - 다시 칠하기! 실시간 스트리밍 거래 신호를 생성합니다. 스트리밍 라이브 데이터 피드를 설치했습니다. 웹 기반 인터페이스. 데스크톱 및 모바일 장치 용.
1 개월 구독에 260 달러.
이진 옵션 무역 복사기 브리지.
이진 옵션 무역 복사기 다리! 바이너리 옵션 플랫폼 간 승패 거래, 이진 옵션 신호를 복사합니다. 즉시! 믿을만한! 100 % 자동! 정적 로트 크기, 동적 로트 크기, 마틴 게일을 지원합니다. 전문 상인의 수익성있는 전략에서 거래를 복사하고 돈을 벌 수 있습니다.
온라인 바이너리 옵션 신호.
75 % -80 % 매일 승리율! 하루 200 개 이상의 신호. 실시간 스트리밍 거래 신호. 모든 통화 쌍, 만료 시간. 신경망을 기반으로합니다. 웹 기반 인터페이스. 설치할 필요가 없습니다. 새로운 신호는 실시간 차트에 동적으로 전달됩니다.
1 개월 구독에 260 달러.
외환 로봇 복수 통화 Scalper.
Forex Multi Currency Scalper EA는 100 % 자동 거래 로봇으로 28 개의 기호 중 최상의 거래를 선택할 수 있습니다. 위험도가 낮은 전략을 기반으로합니다. 최상의 거래가 체결되도록합니다. 저렴한 가격으로 거래를하고 높은 가격으로 거래를합니다.
Tradingview 신호 복사기.
상인을위한 가장 큰 소셜 네트워크에서 수익성있는 거래 신호를 복사하십시오. 트레이더 뷰 (Tradingview) 신호 복사기 툴을 사용하면 거래자의 글로벌 커뮤니티에 가입하여 원하는 아이디어를 찾고 최상의 아이디어와 신호를 거래 계정으로 직접 복사하고 수익을 창출 할 수 있습니다.
24option 로봇.
바이너리 옵션 거래 (주식, 통화, 금)에 관심이 있습니까? 그것은 측면에서 좋은 돈을 버는 초보자의 단순한 방법입니다! 24 이진 바이너리 옵션 로봇 이것은 바이너리 옵션 거래에서 성공하는 데 필요한 모든 것입니다. 경험이 필요하지 않습니다.
Bitcoin Robot Scalper.
자동 Bitcoin Trading Robot은 Bitcoin 암호화 통화를 거래하며 Metatrader platfrom을 통해 Bitcoin 거래를 지원하는 모든 브로커와 작동합니다. Bitcoin Robot은 큰 초기 자본을 필요로하지 않습니다. Bitcoin은 하루 24 시간 연중 무휴로 거래되고 있습니다.
이진 옵션 예측 표시기.
이진 옵션 Metatrader에 대한 예측 및 거래 신호 표시기. 90 % 정확하고 신뢰할 수있는 거래 신호를 생성합니다. 비 Repainting! 신경망 알고리즘을 기반으로합니다. 어떤 브로커 및 시간대와도 호환됩니다. 모바일 장치에 알림을 보낼 수 있습니다.
GoMarkets 자동 무역업자 로봇.
GoMarkets 자동 거래 로봇은 GoMarkets 중개인과 함께 바이너리 옵션으로 적립하도록 설계된 로봇입니다. 로봇은 한 달에 100 % -300 %의 수익을 창출합니다. 하루에 50 개 이상의 거래가 발생합니다. 거래 신호를 생성하고 연결된 GoMarkets 브로커 계정으로 직접 거래를 자동 실행합니다.
Forex Visual Robot EA.
Forex Visual Robot 전문가 조언자의 목적은 추세선, 수평선 또는 등거리 채널과 같은 일부 차트 개체를 기반으로 거래를 실행하는 것입니다. Forex Visual Robot 전문가 조언자의 주요 이점은 Forex 차트에 배치 된 다양한 그래픽 개체에 따라 주문을 설정하고 조정할 수 있다는 것입니다.
이진 옵션 다중 신호.
바이너리 옵션 멀티 신호는 14 개의 개별 통화를 스캔하여 최대 90 %의 거래 신호를 생성합니다. 일일 평균 수익은 $ 500 - $ 5000입니다. 신경망 알고리즘을 기반으로합니다. 가장 정확한 정확한 통화를 표시하고 동시에 여러 자산을 교환 할 수 있으며 최대 14 배의 수익을 올릴 수 있습니다.
Forex Robot Arbitrage.
Forex Robot Arbitrage ✅ - 수익성있는 중립적 인 저 위험 전략. martingale 없음, 그리드 없음. 같은 시간에 2 통화를 거래합니다. 통계적 재정 거래 전략 및 정량 분석 ​​알고리즘을 기반으로합니다. 실시간 시장 데이터를 실시간으로 분석하고 90 % 정확한 진입 신호를 생성합니다.
이진물 로봇.
Binarymate Robot - 100 % 바이너리 옵션 자동 거래 로봇! 크고 작은 예금에 대해 안정적인 이익을 창출합니다! 최고의 자동 거래 소프트웨어를 바로 구해서 프로처럼 영원히 거래 할 준비를하십시오! Binarymate Robots를 사용하면 하루에 수백 달러의 이익을 얻을 수 있습니다.
3D-Forex 로봇.
3D-Forex Robot ✅는 가장 정확한 시장 진입 지점을 결정하기 위해 실시간으로 3D 차원에서 시장 데이터를 분석하는 정교한 알고리즘을 기반으로하는 완전 자동 Forex 거래 전문가 고문입니다. EA는 거래에 대한 긍정적 인 거래 확률이 가장 높은 순간을 선택하여 시장을 통제합니다.
Forex Account Rescuer.
Loss Recovery Trader Robot (EA) 100 %는 자동으로 외환 계정을 복구하고 잃어버린 위치를 복구하여 잃어버린 거래를 줄이거 나 없애고 더 많은 이익을 얻을 수 있도록 도와줍니다. 간단히 무역 거래를하면 Loss Recovery Trader Robot이 나머지 작업을 처리합니다.
Forex 계정 수비수.
계정 수비수는 귀하의 계좌를 모든 종류의 손실로부터 보호하고 보증금 안전을 빠르게 향상시키는 데 도움을줍니다. 계정 수호자는 여러 매개 변수와 설정을 사용하여 거래를 관리하고 여러 통화 쌍에서 수익과 손실을 관리 할 수있는 MetaTrader 전문가 고문입니다.
CQG QTrader 로봇.
CQG QTrader Robot은 CQG QTrader Trading Platform을 통해 수익성있는 거래를 위해 특별히 설계된 완전 자동화 된 거래 소프트웨어입니다. 수익성 지표, 주식 (주식 시장), 상품, 채권을 거래 할 수 있습니다. CQG Robot은 정의 된 조건이 충족되면 주가를 자동으로 모니터링하고 주문을합니다.

최첨단 Forex 기술.
정확한 외환 신호를위한 사회 신경망 활용.
많은 헤지 펀드 및 프로 트레이더가 사용합니다. 엄격한 테스트를 거친 높은 R ​​/ 위험 비율 및 90 % 몬테 카를로 예측 정확도.
일관된 성능.
FX Trading은 손실을 줄이거 나 승자를 실망시키는 것에 관한 것입니다. ForexSignals. me에서 모든 Forex, 상품 및 지수 거래에는 최소 1 : 3 위험 / 보상 비율이 있습니다. 평균 승수는 평균 손실의 두 배 이상입니다.
스마트 리스크 관리.
당사의 최첨단 위험 관리 알고리즘은 사전에 미래의 미래 수익을 잘 예측합니다. 이 독점 기술을 통해 당사의 거래 엔진은 거래 당 및 세션 당 절감액을 항상 낮게 유지할 수 있습니다.
스텔라 고객 서비스.
Trading Forex는 리스크가 높을뿐만 아니라 스트레스도 높음. 우리의 고객 지원 팀은 24x7의 기술 또는 외환 거래 질의를 처리하기 위해 신속한 처리 시간, 탁월한 지원 및 복잡한 지식에 대한 실적을 보유하고 있습니다.
© 2013 정확성 중심의 Forex 신호 ITM Financial.

외환 신경망 표시기
Forex를위한 하이브리드 신경망 정지 및 역전 전략.
Michael R. Bryant.
신경망은 수년간 거래 시스템에서 다양한 수준의 성공으로 사용되어 왔습니다. 그들의 주요 매력은 비선형 구조가 표준 지표 기반 거래 규칙보다 가격 이동의 복잡성을 더 잘 포착 할 수 있다는 것입니다. 비판 중 하나는 신경망 기반 거래 전략이 지나치게 적합하기 때문에 새로운 데이터에서 잘 수행되지 않는다는 것입니다. 이 문제에 대한 가능한 해결책은 신경망과 규칙 기반 전략 논리를 결합하여 하이브리드 유형의 전략을 만드는 것입니다. 이 기사에서는 Adaptrade Builder를 사용하여이 작업을 수행하는 방법을 보여줍니다.
특히이 기사에서는 다음을 설명합니다.
거래 항목에 대한 신경망과 규칙 기반 논리를 결합합니다.
동시에 여러 플랫폼 타겟팅 (MetaTrader 4 및 TradeStation)
비대칭 정지 - 및 - 역 논리를 사용하여 전략 개발.
intraday forex 데이터 사용.
마지막 전략을 검증하는 데 사용되는 세 번째 세그먼트 데이터 접근 방식이 사용됩니다. MetaTrader 4 및 TradeStation에 대한 결과 전략 코드가 표시되며 각 플랫폼에 대해 검증 결과가 긍정적임을 입증합니다.
무역 진입 필터로서의 신경망.
수학적으로 신경망은 하나 이상의 출력 값을 생성하는 하나 이상의 가중 입력의 비선형 조합입니다. 거래의 경우, 신경망은 일반적으로 (1) 미래 가격 움직임의 예측 또는 (2) 거래를위한 지표 또는 필터의 두 가지 방법 중 하나로 사용됩니다. 여기에서 지표 또는 거래 필터로 사용하는 것이 고려됩니다.
지표로서, 신경망은 거래가 시작되기 전에 충족되어야하는 추가적인 조건 또는 필터로서 작용한다. 네트워크에 대한 입력은 전형적으로 모멘텀, 스토캐스틱, ADX, 이동 평균 등과 같은 다른 기술 지표와 이전 가격의 가격 및 조합입니다. 입력은 스케일링되고 신경망은 출력이 -1과 +1 사이의 값이되도록 설계되었습니다. 한 가지 방법은 출력이 0.5와 같은 임계 값보다 크거나 같으면 긴 입력을 허용하고 출력이 임계 값의 음보다 작거나 같은 경우 짧은 입력을 허용하는 것입니다. 예 : -0.5. 이 조건은 기존 입력 조건에 추가됩니다. 예를 들어, 긴 입력 조건이있는 경우, 참이어야하고 신경망 출력은 긴 입력에 대한 임계 값과 적어도 같아야합니다.
뉴럴 네트워크를 설정할 때, 통상적으로 상인은 입력 및 네트워크 토폴로지를 선택하고 "트레이닝 (training)"을 담당 할 것이다. 최적의 가중치를 결정하는 네트워크 아래에 나와있는 것처럼 Adaptrade Builder는 소프트웨어가 기반으로하는 진화 적 빌드 프로세스의 일부로 이러한 단계를 자동으로 수행합니다. 신경망을 거래 필터로 사용하면 다른 규칙과 쉽게 결합하여 기존의 규칙 기반 방식의 최상의 기능과 신경망의 장점을 결합한 하이브리드 거래 전략을 만들 수 있습니다. 간단한 예를 들어, 빌더는 이동 평균 크로스 오버 규칙을 신경망과 결합하여 빠른 이동 평균이 느린 이동 평균을 초과하고 신경망 출력이 임계 값 이상인 경우 긴 위치가 취해질 수 있습니다.
Stop-and-Reverse 거래 전략.
stop-and-reverse 거래 전략은 항상 길거나 짧은 시장에 존재하는 전략입니다. 엄밀히 말하면, "정지 및 역전" 정지 주문에 도달했을 때 거래를 취소한다는 의미입니다. 그러나, 나는 그것을 장단점에서 장단기로 전환하는 모든 거래 전략에 대한 단문으로 사용하므로 항상 시장에 나와 있습니다. 이 정의에 따라 주문이 중지 명령 일 필요는 없습니다. 시장을 이용하여 진입하거나 역으로 전환하거나 주문을 제한 할 수 있습니다. 또한 각면에서 동일한 논리 또는 동일한 주문 유형을 사용할 필요는 없습니다. 예를 들어, 중지 주문에 long (그리고 exit short)을 입력하고 각 entry / exit에 대해 다른 규칙과 조건을 사용하여 시장 주문에 short (그리고 long exit)를 입력 할 수 있습니다. 이것은 비대칭 정지 - 및 역방향 전략의 한 예입니다.
stop-and-reverse 전략의 가장 큰 장점은 항상 시장에 나와 있으면 큰 움직임을 놓치지 않는 것입니다. 또 다른 장점은 단순성입니다. 거래를 시작하고 종료하기위한 별도의 규칙과 조건이있는 경우 더 복잡하고 더 많은 것이 잘못 될 수 있습니다. 항목과 종료를 결합하면 타이밍 결정이 줄어들며 실수가 줄어들 수 있습니다.
반면에, 거래를 종료하기위한 최적의 조건은 반대 방향으로 진입하는 조건과 거의 동일하다고 주장 할 수있다. 진입 및 퇴출 거래는 본질적으로 분리 된 결정이므로 별도의 규칙과 논리를 사용해야합니다. 항상 시장에 존재한다는 또 다른 잠재적 인 단점은 전략이 모든 오프닝 갭을 통해 거래 될 것이라는 점입니다. 포지션과의 커다란 격차는 전략이 반전되기 전에 막대한 손실을 의미 할 수 있습니다. 보다 선택적으로 출입하는 전략이나 하루가 끝날 때 퇴장하는 전략은 공백을 메우는 영향을 최소화 할 수 있습니다.
목표는 외환 전략을 수립하는 것이므로 MetaTrader 4 (MT4)는 MetaTrader 4가 주로 외환을 위해 설계되었으며 해당 시장을 거래하는 데 널리 사용된다는 점에서 거래 플랫폼에 대한 확실한 선택입니다 (예 : MetaTrader vs. TradeStation : 언어 비교). 그러나 최근 몇 년간 TradeStation은 외환 시장을보다 공격적으로 타깃으로 삼았습니다. 귀하의 거래량 및 / 또는 계정 수준에 따라 플랫폼 수수료를받지 않고 커미션을 지불하지 않고도 TradeStation을 통해 외환 시장을 거래 할 수 있습니다. 스프레드는 주요 외환 쌍에 좋은 유동성으로 타이트하게 보도되고있다. 이러한 이유로 두 플랫폼 모두이 프로젝트의 대상이었습니다.
여러 플랫폼을 동시에 타겟팅 할 때 몇 가지 문제가 발생합니다. 첫째, 시간대, 일부 막대의 가격 견적, 수량 및 사용 가능한 날짜 범위가 서로 다른 플랫폼에 따라 데이터가 다를 수 있습니다. 이러한 차이점을 없애기 위해 두 플랫폼에서 모두 데이터를 가져 왔으며 전략은 두 데이터 시리즈에 동시에 적용되었습니다. 따라서 최상의 전략은 데이터의 차이에도 불구하고 두 데이터 시리즈 모두에서 잘 작동하는 전략이었습니다.
그림 1의 Market Data 테이블에서 추측 할 수있는 바와 같이 유로 / 달러 외환 시장은 4 시간 (240 분)의 막대 크기를 가진 EURUSD를 목표로했습니다. 다른 바 크기 나 시장도 마찬가지였습니다. 필자는 MT4 플랫폼을 통해 그림 1 (데이터 시리즈 # 2)에 표시된 날짜 범위로 표시된만큼의 데이터를 얻을 수 있었기 때문에 동일한 날짜 범위가 TradeStation에서 동일한 데이터 시리즈를 얻는 데 사용되었습니다 (데이터 시리즈 # 1). 데이터의 80 %는 검증을 위해 따로 보관되는 20 % (6/20/14에서 2/10/15)와 함께 Building (샘플 내 및 "out-of-sample"결합)에 사용되었습니다. 이어서, 원래의 80 %의 80 %가 "샘플 내"로 설정되었다. 20 %가 "샘플 밖"으로 설정된 경우, 매도 / 매도 스프레드는 5 pips로 설정되었고 라운드 컷 당 6 pips 또는 풀 사이즈 로트 (100,000 주) 당 60 달러의 거래 비용이 가정되었다. 두 데이터 시리즈는 Market Data 테이블의 왼쪽 열에있는 확인 표시에 표시된대로 빌드에 포함되었습니다.
그림 1. MetaTrader 4 및 TradeStation의 외환 전략을 수립하기위한 마켓 데이터 설정.
여러 플랫폼을 대상으로 할 때 또 다른 잠재적 인 문제점은 지원되는 각 플랫폼이 해당 표시기를 계산하는 방식을 복제하도록 설계 되었기 때문에 선택되는 플랫폼에 따라 표시기 값이 달라질 수 있다는 것입니다. 이러한 불일치의 원인을 피하기 위해 MetaTrader 4에서 TradeStation보다 다르게 평가되는 지표는 빌드에서 제거되어야합니다. 이는 다음과 같은 지표를 피해야한다는 것을 의미합니다.
천천히 D 확률 적.
빠른 확률론.
두 플랫폼에서 사용할 수있는 다른 모든 표시기는 두 플랫폼에서 같은 방식으로 계산됩니다. TradeStation에는 Builder에서 사용할 수있는 모든 표시기가 포함되어 있지만 MetaTrader 4에서는 사용할 수 없습니다. 따라서 두 플랫폼 모두에서 사용할 수있는 지표 만 포함하려면 Builder에서 코드 유형으로 MetaTrader 4 플랫폼을 선택해야합니다. 그러면 빌드 세트에서 MT4에 사용할 수없는 지표가 자동으로 제거되므로 두 플랫폼 모두에서 사용할 수있는 지표가 남습니다. 또한 각 플랫폼에서 얻은 볼륨 데이터의 차이점을 발견 했으므로 빌드 세트에서 모든 볼륨 종속적 인디케이터를 제거했습니다. 마지막으로 데이터 파일 간의 시간대가 다르기 때문에 시간 표시기가 제거되었습니다.
아래의도 2에서, 빌드 세트에서 사용되는 인디케이터리스트는 빌드 프로세스 ( "고려"컬럼)에 의해 인디케이터가 고려되었는지 여부에 따라 정렬되어 도시된다. 위에서 논의 된 이유로 지표가 제거되면 목록 상단에 표시됩니다. "Simple Mov Ave"로 시작하는 나머지 표시기는 모두 빌드 세트의 일부였습니다.
그림 2. 빌드 세트에서 제거 된 지표를 보여주는 Builder의 표시기 선택.
빌드 프로세스에서 사용 된 평가 옵션은 그림 3과 같습니다. 앞서 설명한 것처럼 MetaTrader 4가 코드 출력 선택으로 선택되었습니다. Builder에서 전략을 작성한 후에는 코드 유형을 포함하여 평가 옵션 탭의 옵션을 변경하고 전략을 재평가 할 수 있으며 선택한 언어로 코드를 재 작성합니다. 이 기능은 MetaTrader 4를위한 전략을 수립 한 후 최종 전략을위한 TradeStation 코드를 얻는 데 사용되었습니다.
그림 3. EURUSD forex 전략을위한 빌더의 평가 옵션.
정지 및 후진 전략을 생성하기 위해 아래 그림 4와 같이 모든 출구 유형이 빌드 세트에서 제거되었습니다. 세 가지 유형의 진입 명령 (시장, 정지 및 제한)은 모두 "고려하십시오"로 남았습니다. 이는 빌드 프로세스가 빌드 프로세스 중에 고려할 수 있음을 의미합니다.
그림 4. Builder에서 선택한 주문 유형을 사용하여 중지 및 후진 전략을 작성하십시오.
Builder 소프트웨어는 항목 및 / 또는 종료에 대한 규칙 기반 논리 조건을 자동으로 생성합니다. 전략에 신경망을 추가하기 위해, "진입 조건에서 신경망을 포함"옵션을 선택하는 것만으로 충분하다. Strategy Options (전략 옵션) 탭에서 아래 그림 5와 같이 신경망 설정이 기본값으로 유지됩니다. 정지 및 역 논리의 일부로서, Market Sides 옵션은 Long / Short로 설정되고, & quot; 새로운 거래를 시작하기 전에 종료를 기다리는 & quot; 확인되지 않았습니다. 후자는 반전시 현재 오더를 종료하도록 엔트리 오더를 활성화하는 데 필요합니다. 다른 모든 설정은 기본값으로 두었습니다.
그림 5. 규칙 기반 및 신경 네트워크 조건을 모두 사용하여 하이브리드 전략을 작성하기 위해 Builder에서 선택된 전략 옵션.
Builder에서 빌드 프로세스의 진화 적 특성은 그림 6에서와 같이 메트릭 탭에 정의 된 목표 및 조건에서 계산 된 적합성에 따라 결정됩니다. 빌드 목표는 간단하게 유지됩니다. 최소 이익을 극대화하면서 순이익 최대화 복잡성, 순이익에 비해 상대적으로 작은 가중치를 부여했습니다. 일반적인 전략 품질에 대한 상관 계수 및 중요성뿐만 아니라 거래의 평균 막대 및 거래 수를 포함하는 구축 조건에 중점을 두었습니다.
처음에는 거래의 평균 막대 만 구축 조건으로 포함되었습니다. 그러나 일부 초기 빌드에서는 당기 순이익이 거래 기간보다 선호되어 거래 수 메트릭이 추가되었습니다. 거래 횟수 (209 ~ 418)의 지정된 범위는 빌드 기간의 막대 수에 따라 15 ~ 30 바 사이의 평균 거래 길이와 같습니다. 결과적으로, 이 측정 기준을 추가하는 것은 무역 길이 목표에 더 많은 중점을 두었고, 결과적으로 원하는 무역 범위의 범위를 가진 인구가 더 많아졌습니다.
그림 6. 메트릭 탭에서 설정 한 빌드 목표 및 조건에 따라 적합성 계산 방법이 결정됩니다.
& quot; 인기 전략 선택 조건 & quot; 빌드 조건의 경우와 같이 빌드 기간 동안이 아니라 전체 데이터 범위 (별도의 유효성 검사 세그먼트 제외)에서 최상위 전략 조건을 평가한다는 점을 제외하고는 빌드 조건을 복제하십시오. 최상위 전략 조건은 프로그램이 별도의 모집단에서 모든 조건을 충족시키는 전략을 따로 설정하는 데 사용됩니다.
최종 설정은 아래 그림 7과 같이 [빌드 옵션] 탭에서 수행됩니다. 여기에서 가장 중요한 옵션은 모집단 크기, 세대 수 및 "샘플 외"를 기반으로 재설정 할 수있는 옵션입니다. 공연. 인구 규모는 인구의 다양성을 유지하기에 충분할 정도로 커지도록 선택되었으며 합리적인 시간 내에 구축하기에 충분히 작습니다. 세대 수는 결과가 수렴하기 시작하기 위해 몇 가지 예비 빌드를 수행하는 데 걸린 시간을 기준으로합니다.
그림 7. 빌드 옵션에는 모집단 크기, 세대 수, & quot; 샘플 외 & quot;를 기반으로 모집단을 재설정하는 옵션이 포함됩니다. 공연.
& quot; OOS (Out-of-Sample) 성능에서 초기화 & quot; 옵션은 지정된 조건이 충족되면 지정된 세대 수 이후에 빌드 프로세스를 시작합니다. 이 경우에, 모집단은 "샘플 밖"(out-of-sample) 순이익은 20,000 달러 미만입니다. 이 값은 사전 테스트를 기준으로 선택 되었기 때문에 충분히 도달 할 수 없을만큼 높은 값입니다. 결과적으로 빌드 프로세스는 수동 중지 될 때까지 30 세대마다 반복되었습니다. 이것은 프로그램이 오랜 기간 동안 최고 전략 조건에 기반한 전략을 식별하게하는 방법입니다. 정기적으로 상위 전략 인구를 확인하고 적절한 전략을 찾으면 구축 프로세스를 취소 할 수 있습니다.
나는 "out-of-sample"을 넣는다. 따옴표 안에. "아웃 오브 샘플" 기간이 이러한 방식으로 모집단을 재설정하는데 사용되는 경우, "샘플 밖" 기간은 더 이상 진정한 표본이 아닙니다. 이 기간은 현재 빌드 프로세스를 안내하는 데 사용되고 있으므로 샘플 기간의 일부분이됩니다. 위에서 설명한 것처럼 유효성 검사를 위해 세 번째 세그먼트를 따로 설정하는 것이 좋습니다.
몇 시간의 처리 및 자동 재 구축 횟수를 거친 후 Top Strategies 인구에 적합한 전략이 발견되었습니다. 폐쇄 형 무역 주식 곡선은 아래 그림 8에 나와 있습니다. 이 주식형 곡선은 두 거래에서 일정한 실적을 보였으며 두 거래에서 동일한 결과를 나타 냈습니다.
그림 8. EURUSD stop-and-reverse 전략에 대한 비공개 주식 거래 곡선.
유효성 검사 기간 동안 전략을 확인하기 위해 시장 탭 (그림 1 참조)의 날짜 컨트롤이 데이터 종료 날짜 (2015 년 2 월 11 일)로 변경되고 전략은 평가를 선택하여 재평가되었습니다 명령을 사용하십시오. 결과는 아래 그림 9와 같습니다. 빨간색 상자의 유효성 검사 결과는 전략이 빌드 프로세스 중에 사용되지 않은 데이터를 유지하고 있음을 보여줍니다.
그림 9. 유효 기간을 포함하여 EURUSD stop-and-reverse 전략에 대한 비공개 주식 거래 곡선.
최종 점검은 해당 플랫폼에 대한 코드 출력 옵션을 사용하여 각 데이터 시리즈에서 전략을 수행하는 방법을 개별적으로 확인하는 것입니다. 위에서 설명한 것처럼 (1) 코드 유형 및 (2) 데이터 계열에 따라 결과에 차이가있을 수 있기 때문에 이는 필요합니다. 선택한 설정이 이러한 차이를 최소화했는지 확인해야합니다. MetaTrader 4의 전략을 테스트하기 위해 Markets 탭에서 TradeStation의 데이터 시리즈를 선택 해제하고 전략을 재평가했습니다. 그 결과를도 10에 아래에 나타내 었으며, 이는도 9의 하부 곡선과 동일하다.
그림 10. MetaTrader 4에 대한 유효 기간을 포함하여 EURUSD 중지 및 역전 전략에 대한 비공개 주식 거래 곡선.
마지막으로 TradeStation의 전략을 테스트하기 위해 TradeStation의 데이터 시리즈를 선택하고 MetaTrader 4의 시리즈를 Markets 탭에서 선택 취소하고 코드 출력을 "TradeStation"으로 변경했습니다. 그 전략은 재평가되었다. 그 결과는도 11에 아래에 도시되어 있으며 예상대로도 9의 중간 곡선과 매우 유사하게 나타난다.
그림 11. TradeStation의 유효 기간을 포함하여 EURUSD 중지 및 역전 전략에 대한 비공개 주식 거래 곡선.
두 플랫폼의 코드는 아래 그림 12에 나와 있습니다. 이미지를 클릭하면 해당 플랫폼의 코드 파일이 열립니다. 코드를 검토하면 전략의 규칙 기반 부분이 장기 및 단기에 대해 다양한 변동성 관련 조건을 사용함을 알 수 있습니다. 신경망 입력은 요일, 추세 (ZLTrend), 일중 최고, 오실레이터 (InvFisherCycle, InvFisherRSI), 볼린저 밴드 및 표준 편차를 비롯한 다양한 지표로 구성됩니다.
이 전략의 하이브리드 성은 TradeStation 코드의 코드 구문에서 직접 볼 수 있습니다.
EntCondL 및 NNOutput & gt; = 0.5 인 경우, 시작한다.
구매 ( "EnMark-L") NShares는 시장에서 다음주를 공유합니다.
변수 "EntCondL" 는 룰 - 기반 엔트리 조건을 나타내며, "NNOut"는 룰 - 기반 엔트리 조건을 나타낸다. 신경망의 출력입니다. 긴 입력 순서를 지정하려면 두 조건이 모두 true 여야합니다. 짧은 입력 조건은 동일한 방식으로 작동합니다.
그림 12. EURUSD stop-and-reverse 전략을위한 거래 전략 코드 (왼쪽, MetaTrader 4, 오른쪽, TradeStation). 그림을 클릭하면 해당 코드 파일이 열립니다.
이 기사에서는 Adaptrade Builder로 stop-and-reverse (항상 시장에 나와있는) 접근법을 사용하여 EURUSD를위한 하이브리드 규칙 기반 / 신경망 전략을 구축하는 과정을 살펴 보았습니다. 각 플랫폼에서 동일한 방식으로 작동하는 지표의 공통 하위 집합을 선택하여 여러 플랫폼에서 전략 코드를 생성하는 방법을 보여주었습니다. 장단기에서 후퇴로 역전되는 전략을 생성하는 데 필요한 설정이 기술되었으며 결과적인 전략이 별도의 유효성 검증 세그먼트에서 긍정적으로 수행 되었음이 입증되었습니다. 또한이 전략은 각 플랫폼에 대해 데이터 및 코드 옵션을 사용하여 유사한 결과를 생성했음을 확인했습니다.
위에서 언급했듯이 정지 및 역 접근에는 몇 가지 단점이 있으며 모든 사람에게 호소력이 없을 수 있습니다. 그러나 외환 시장은 24 시간 내내 거래되기 때문에 항상 시장 접근 방식이 외환 데이터에 더 매력적일 수 있습니다. 결과적으로 세션 오프닝 갭이 없으며 거래 주문은 항상 활성화되어 시장 변화에 따라 거래를 되돌릴 수 있습니다. 하루 동안의 데이터 (4 시간 막대)를 사용하면 빌드 프로세스에서 더 많은 데이터 막대가 제공되었지만 전략의 항상 시장 특성은 거래가 밤새 수행된다는 점에서 상당히 독점적이었습니다.
빌드 프로세스는 길고 짧은 진입을위한 다양한 조건을 전개 할 수 있었기 때문에 비대칭 스톱 앤드 리버스 전략이 가능했습니다. 이름에도 불구하고 시장, 정지 및 제한 주문은 모두 각 측면에 대해 독립적으로 구축 프로세스에 의해 고려되었지만 결과적인 전략은 시장 주문에 대한 장기 및 단기 거래를 시작합니다. 실제로 장기간에서 단기로 반전하는 것은 전략이 현재 길기 때문에 시장에서 주식의 수를 두 배로 줄이는 것을 의미합니다. 예를 들어, 현재의 긴 포지션이 100,000 주라면, 시장에서 200,000 주를 판매 할 수 있습니다. 마찬가지로, 현재 짧은 포지션이 100,000 주라면, 시장에서 20 만 주를 사면서 단기에서 장기로 반전 할 수 있습니다.
이상적인 것보다 더 짧은 가격 내역이 사용되었습니다. 그럼에도 불구하고 그 결과는 밸리데이션 부문에서 긍정적이었고 과도한 전략이 아니었다. 이는 전략을 시장에 과도하게 적용하지 않고도 신경망을 거래 전략에 사용할 수 있다는 생각을 뒷받침합니다.
여기 제시된 전략은 실제 거래를위한 것이 아니며 실시간 추적 또는 거래에서 테스트되지 않았습니다. 그러나이 기사는 EURUSD 또는 기타 시장에 대한 유사한 전략을 개발하기위한 템플릿으로 사용할 수 있습니다. 항상 그렇듯이 개발하는 모든 거래 전략은 실시간 추적이나 개별 데이터로 철저히 테스트하여 결과를 확인하고 실시간 거래 전 전략의 거래 특성을 익히도록해야합니다.
이 기사는 Adaptrade Software 뉴스 레터의 2015 년 2 월호에 실렸습니다.
HYPOTHETICAL 또는 SIMULATED PERFORMANCE 결과는 특정 제한이 있습니다. 실제 성과 기록과 달리, 시뮬레이션 된 결과는 실제 거래를 나타내지 않습니다. 또한 거래가 실제로 실행되지 않았기 때문에 결과가 유동성 부족과 같은 특정 시장 요인에 영향을 미치거나 과다 또는 과소 보상을받을 수 있습니다. 시뮬레이션 된 거래 프로그램은 일반적으로 통보의 이익을 고려하여 설계되었다는 사실을 인정합니다. 어떠한 계정도 이익이나 손실을 달성 할 가능성이있는 것으로 나타나지 않습니다.
Adaptrade Software의 새로운 개발, 뉴스 및 특별 제안에 대한 정보를 얻으려면 당사 목록에 가입하십시오. 고맙습니다.
저작권 © 2004-2015 Adaptrade Software. 판권 소유.

스노우 크론.
무료 E. Mail 클래스.
이 기사에서는 : 신경 네트워크 소프트웨어를 사용하여 완벽한 신경 네트워크 거래 시스템을 만드는 예.
이 예제는 Cortex 내장 스크립팅 언어를 사용하므로 스크립트 언어 안내서를 먼저 읽으십시오.
신경망을 사용하여 외환 거래 전략 수립.
이 무료 온라인 자습서에서는 신경 네트워크 (Cortex 신경망 소프트웨어)를 Forex 거래 (또는 주식 시장 거래, 아이디어는 동일합니다)로 사용하는 "전체주기"를 찾을 수 있습니다.
인공 신경망에 대한 입력을 선택하는 방법과 출력으로 사용할 것을 결정하는 방법을 배웁니다.
뉴런 네트워크 (뉴런 수) 및 외환 거래 시스템 (스톱 손실 등)의 신경 네트워크 최적화를 수행 할 수있는 스크립트를 사용할 준비가 된 예제를 찾을 수 있습니다.
마지막으로 (대부분의 자습서에없는 부분), 다음에해야 할 일을 배우게됩니다. 결국 Cortex Neural Networks 소프트웨어는 실시간 거래를 할 수 없으므로 Trade Station, MetaQuotes 또는 MetaTrader와 같은 것을 사용해야합니다. Cortex에서 좋아하는 거래 플랫폼으로 FOREX 거래 시스템을 이식하는 방법은 무엇입니까? DLL, ActiveX 컨트롤 및 로우 레벨 프로그래밍을 처리해야합니까? 내 대답은 아니오 야.
Cortex Neural Networks 소프트웨어는 사용하기 쉬운 기능을 제공하므로 결과 (훈련 된) 신경망을 거래 플랫폼의 스크립팅 언어로 쉽게 포팅 할 수 있습니다. DLL, DDE, ActiveX 또는 기타 저급 솔루션은 없습니다. 모든 것이 간단하고 간단합니다.
중요 참고 사항 :이 안내서는 "사용법"안내서가 아닙니다. 대신 Cortex Neural Networks 소프트웨어를 사용하는 방법을 알려주지 만 여전히 자신의 거래 시스템을 개발해야합니다. 우리가 여기서 사용하는 것은 출발점에 불과하며 "있는 그대로"외환 거래 전략으로 사용되어서는 안됩니다. 이 텍스트의 아이디어는 NN 기반 거래 시스템을 만들고 원하는 거래 플랫폼으로 이식하도록 안내하는 것입니다. 그러나이 예제는 단순화되어있어 거래 원칙의 예시로만 사용될 수 있습니다. 같은 방식으로, 많은 자습서에서 찾을 수있는 MACD 거래 시스템은 시장이 변화함에 따라 더 이상 잘 작동하지 않지만 여전히 기계 거래를위한 지표를 사용하는 좋은 예입니다.
두 단어로 : 자신의 분석을하십시오.
또 다른 중요한 참고 사항 :이 튜토리얼에서는 예제를 많이 사용합니다. 당신의 삶을 편하게하기 위해서, 나는 단편뿐만 아니라 모든 것을 포함 시켰습니다. 그러나 그것은 텍스트를 훨씬 길게 만듭니다. 또한, 나는 무엇보다 개선 된 이유와 이유를 설명 할 때마다, 매우 첫 번째, 서투른 외환 거래 시스템에서 더 발전 할 것입니다. 인내심을 갖고 필요한 부분으로 바로 이동하십시오.
최종 중요 사항 : 코드는 돌로 조각 된 것이 아니라이 텍스트가 작성된 동안 변경 될 수 있습니다. 스크립트 파일의 최종 버전은 Cortex 아카이브에 포함되어 있습니다.
FOREX 매수 / 매도 시그널의 함정 : "간단한"예제는 무엇이 잘못 되었습니까?
Cortex Neural Networks 소프트웨어 사용자 가이드에서 우리는 aftifficial Neural Network의 간단한 예를 사용하여 GENZ 주식의 가격을 예측했습니다. 이 접근법에 무엇이 잘못된지 알아 내려면 GFTZ 대신 MSFT. TXT를 사용하여 "간단한"예를 들어 봅시다 (MSFT. TXT가 조금 짧으면 학습 집합에서 800 레코드 사용) GENZ. TXT).
그것은 단지 작동하지 않을 것이다! 왜?
그 이유는 당신이 스스로에게 묻는다면 분명해질 것입니다 : "왜 미래의 가치에 대한 신경 네트워크 예측이 첫 번째로 행해지 는가?"
그 답은 패턴을 인식하기 위해 신경망 패턴 인식이라고하는 것을 배우는 것이며, 이 패턴들에 숨겨진 논리가 있다면 동일한 논리를 가진 새로운 패턴조차도 인식 될 것입니다.
이것은 같은 논리를 가진 트릭입니다. 거기에는 하나도 없지만 세 가지 문제가 있습니다.
우선, 마이크로 소프트의 주가를 살펴보면 데이터의 "학습"부분에서, 그리고 "테스트"부분에서는 옆으로 떨어지고 있음을 알 수 있습니다. 따라서 논리가 바뀌었을 가능성이 있습니다.
둘째, 그리고 더 중요한 - 패턴은 무엇입니까? 우리가 10-100 범위의 신경 네트워크를 가르친 다음 1에서 3 범위의 무언가를 제시한다면, 그들은 서로 다른 패턴입니다! 10, 20, 30 및 1, 2, 3은 인간과 비슷하게 보입니다. 왜냐하면 - 왜냐하면 - 우리는 숫자가 0으로 끝나는 숫자가 제시 될 때 10으로 나눌 수있는 능력이 있기 때문입니다. 이는 데이터의 사전 처리라고 불리는 것이며, 기본적으로 NN은 데이터를 처리 할 수 ​​없습니다.
우리가 그것을 가르쳐 줄 수 있니? 당연하지. 정확히 우리가 그것을 가르쳐야합니까?
이것은 세 번째이며 가장 중요한 것입니다. 우리는 가격 예측이 필요하지 않습니다! 우리는 상관 없어! 우리가 필요로하는 것은 FOREX 매도 신호입니다.
자, 잠깐만! 우리는 a) 우리의 의견 (학습과 테스트 모두)을 동일한 범위에서 유지해야하며 b) 그것에 기반하여 거래 의사 결정을 할 수 있어야합니까? 우리가 지표라고 부르는 것이 아닌가? 빙고?
그래서 우리가 할 일이 있습니다. 지표를 작성하여 NN에 입력하고, 지표 가치에 대한 예측을 시도합니다. 가치없는 주가는 아닙니다!
첫 번째 예에서는 디스크에서 주가를로드하고 Neural Network 파일을 열고 학습을 시작합니다. 모두 자동화 된 모드로 진행됩니다.
새 스크립트 파일을 만들거나 Cortex Neural Networks 소프트웨어 아카이브와 함께 제공된 파일을 열고 stocks_nn. tsc라고합니다.
먼저 MSFT. TXT 파일에서 가격 값을 다운로드해야합니다. 우리는 CLV 표시기 (아래 참조)를 사용할 것이지만이를 계산하려면 닫는 것만이 아니라 높이 및 낮음에 대한 분할 조정 값이 필요합니다. 여기에 그것들을 얻는 방법이 있습니다.
stocks_nn. tsc, 파트 1.
첫 번째 행은 경로를 strStockPath 변수에 지정합니다. 물론 데이터 파일이 다른 디렉토리에 있으면 편집해야합니다.
두 번째 줄에서 우리는이 경로가 상대 경로가 아니라는 것을 지정합니다 (Cortex. exe 파일의 위치에 대한 "상대적").
TABLE_LOADER는 "시작 줄"의 빈 문자열 인 경로를받습니다. 1 - 파일의 바닥 글 행의 일부인 첫 번째 줄 (열 이름)을 건너 뛸 수 있습니다 (MSFT. TXT의 마지막 줄에는 데이터가 없습니다). 또한 열 번호 0 (및 arrDate), 2 (arrHigh), 3 (arrLow), 4 (arrC) 및 6 (arrClose)을로드하도록 지시받습니다.
TABLE_LOADER에 대한 자세한 내용은 SLANG 참조 안내서를 참조하십시오.
그런 다음 조정 된 닫기를 닫기로 나누어 나누기를 계산하고이 값을 사용하여 낮음 및 높음을 조정합니다.
MSFT. TXT 파일에는 가장 최근의 데이터가 먼저 포함되어 있습니다.
다음으로 지표를 만들어야합니다. 예를 들어, "실제 생활"에서 NN 입력으로 하나 이상의 표시기를 사용하지만 Close Location Value 표시기가 될 것입니다.
닫기 위치 값 표시기는 다음과 같이 계산됩니다.
CLV = ((Close - Low) - (High - Close)) / (High - Low), 간격은 Close, Low 및 High가 단일 막대 일 필요는 없습니다. NN의 범위 (다시 0-1)로 쉽게 정규화 할 수 있도록 0 - 1 범위에서 사용합니다.
stocks_nn. tsc, 파트 3.
다음으로 지연 파일을 만들어야합니다. lags를 1, 2와 같게 사용하십시오. 9 (파일 기능에 대한 자세한 내용은 SLANG 참조 안내서 참조). Cortex의 NN 대화 상자는 자동으로 간단한 래그를 생성 할 수 있습니다 ( "래그 생성"버튼을 사용할 수 있음). 그러나이 글의 뒷부분에서 복잡한 래그 (즉, 1, 2, 3가 아니라 1, 3, 64가 무엇이든간에)를 사용하기 때문에이 작업을 처리 할 수있는 코드를 만들어야합니다. 더 유연한 방법.
stocks_nn. tsc, 파트 4.
지체 파일을 가지고 첫 번째 신경망을 만들 준비가되었습니다. 이 함수는 많은 매개 변수를 필요로하므로주의하십시오. 그러나 코드는 매우 간단합니다.
그런데 코드의 의미있는 이름 대신 번호를 처리 할 수 ​​있다고 생각하면이 코드의 대부분을 제거 할 수 있습니다. 이는 매우 나쁜 코딩 방법입니다.
stocks_nn. tsc, 파트 5.
이제 우리는 신경망과 지연된 파일을 가지고 네트워크를 가르쳐야합니다. 지연 파일 (msft_ind. lgg)에는 1074 개의 레코드가 있으므로 800 세트를 학습 세트로 사용하고 나머지 274 세트는 테스트 세트로 사용하는 것이 타당합니다.
물론 네트워크 파일을 열고 "Learning"탭에서 "Run"버튼을 클릭 할 수 있습니다. 그러나 이것이 고급 Cortex Neural Networks 소프트웨어 프로그래밍에 대한 소개이므로 SLANG built_in 스크립팅 언어를 대신 사용해 봅시다.
다음 코드는 ann NN 설정을 사용하여 모달 대화 상자를 표시합니다. "실행"버튼을 클릭 할 권한이 필요하면를 변경해야합니다.
stocks_nn. tsc, 파트 6.
bStartLearning은 0이 될 수 있습니다. 이 경우 대화 상자는 입력을 기다리거나 1이면 학습이 자동으로 시작됩니다.
확인 버튼을 클릭하여 대화 상자를 닫으면 bResumeScript가 1과 같으면 스크립트가 다시 시작됩니다.
bReset은 학습이 시작되기 전에 네트워크를 재설정하는 데 사용됩니다.
Run the script, and wait for the epoch counter to exceed 1000, then click "Stop". Go to the "Apply" tab, and click "Apply". This will run the entire data set (both learning and testing) through the NN, and create the. APL file, containing both original input-output, and the NN-generated prediction, this way you can easily plot them and compate against each other.
Go to the "Output" tab, select msft_ind. apl file, click "Browse file", "Select fields", then select the "No" in the left list box, and (by holding down the CTRL key while selecting with the mouse) Clv and NN:Clv in the right list box. Click "Chart" to see how good our prediction is. 잘. It is more or less good, from what we can say by looking at it. Still, nothing extraordinary.
This was just an example of what you can do with SLANG scripting, and how to automate Cortex's routine tasks. However, until now, we did nothing you couldn't do "by hand". 잘. almost nothing, because if you want to create a custom lag file, with, say, Clv-100, Clv-50, Clv-25. columns, then you will have to use SLANG (or Excel. ), because you cannot do in in Cortex without scripting.
FOREX Trading Strategy: what to optimize?
Here is our next problem. Do we need a good-looking prediction, or do we need the one we can use to trade with profit? The question seems odd, but just think about it for a moment. Let's say we have a VERY good 1-hour prediction. 95 % 정확함. Still, how far can the price go in one hour? Not too far, I am afraid. Compare it to the situation, when you have a rather inaccurate 10-hours prediction. Will it be better?
To answer this question, we need to actually trade, a simple comparison of the mean errors produced by the two NNs will not help.
The second part (of the same problem) is in the way we define a "good prediction". Let's say we have a network, that produces the prediction, which is 75% accurate. Compare it to the NN, that is producing 100% accurate prediction. The last one is better. Now, DIVIDE the output (prediction) of the 100% accurate NN by 10. We will have a VERY inaccurate network, as its signal is nowhere near the signal we used as a "desired output". And yet, it can be used same way we used 100% accurate NN, all we have to do is to multiply it to 10!
See, the NN is created, by tuning the mean quadratic error, and not the correlation, so, at least in theory, a better NN can show poor results, when used for the actual stock / Forex trading.
To solve this problem, we need to test our NNs using trading, and to use results of this trading (profit and drawdowns) to decide, if this NN is better than the other one.
Let's do it. Let's create a program, that can be used to fine-tune NN, and this time, by fine-tuning, we will mean trading results.
Neural Network Trading: Few short notes.
First of all, in our example above, the "automatic" learning will never stop, because we haven't specified any stop criteria. In the dialog, or in the CREATE_NN function, you can provide the min. error (when the NN reaches it, it stops and, if bResumeScript is set to 1, the dialog will close and the script will resume). Also yo can provide the maximum number of epochs, or both. I am not using it in the example below, at least not always, because I am planning to watch the learning and to click STOP when I think the NN is ready. If you want to do it in fully automatic mode, pay attention to these parameters.
Second. One of the ways to make a network smaller, faster and more accurate, is to begin with the small network, and increase it's size, neuron by neuron. Obwiously, the number of the input neurons is determined by the number of input data columns (but we can vary them, too), and the number of output neurons should be equal to the number of output data columns (usually one, but not necessarily). This means we need to optimize the number of neurons in the hidden layer(s).
Also, as I have mentioned, we don't really know which data to use. Will Clv-15 (15 days delayed) increase the accuracy of our prediction? Do we need Clv-256? Will it be better to use both of them in the same NN, or will adding Clv-256 ruin our performance?
Using nested cycles to try different input parameters, you can:
Create the NN, same way we did it for the stock data (let me repeate, for the NN, there is no difference between stocks and FOREX, it just happened that I have couple of high quality data files for FOREX that I want to process, while writing this text). Try different combinations of lags. Try different number of neurons in the hidden layer. . and different combinations of different indicators. . and so on.
However, if you try all possible combinations of all possible parameters, you will NEVER get your results, no matter how fast your computer is. Below, we will use couple of tricks to reduce calculations to a bare minimum.
By the way, it may seem, that if you start from one hidden neuron, then increase it to 2, 3 and so on, and at some point the error (quality of the prediction) or the profit (if you test the NN by trading using it) will begin to go down, then you have your winner. Unfortunately, I cannot prove, that after the first "performance peak" there can be no second one. It means, that the error may go like 100, 30, 20, 40, 50 (it was just at its minimum, right?) and then 30, 20, 10, 15, . (the second minimum). We just have to test all reasonable numbers.
Third. Optimization is a two-edged sword. If you over-optimize your code, it may not work outside the data you used to fine-tune it. I will do my best to avoid this pitfall. If you want to do additional optimizations to your code or NN, I advise you to do a research in the Internet, to learn more about hidden problems of this approach. ALso, I am going to pay some attention to the smoothness of the profit curve. The profit that looks like 0, -500, 1000, -100, 10000 may be great, but the profit 0, 100, 200, 300, 400. is better, as it is less risky. We may talk about it later.
Finally, for this example we are going to use FOREX, rather than stock prices. From the point of view of the NN there is no difference, and from my point - Forex is much more fun to trade. If you prefer stocks, the code can easily be modified.
A FOREX Trading Strategy to play with.
First of all, let's create a prototype of our code, one that can easily be optimized in future. It is going to be a trading system, that uses a Neural Network to trade and produces a chart (profit against trade number). It will also calculate drawdown, as a measure of robustness of our trading system.
forex_nn_01.tsc, part 1.
The main difference here is that we use functions, instead of placing all the code in the main block of the program. This way it is much easier to manage.
Second, we have a TestNet function. I am using a very simple algorithm of trading . The CLV indicator is confined to 0 - 1 interval (our version of CLV is), so when the indicator crosses up the dBuyLevel (see code above), I am buying, when it is crossing down the dSellLevel, I am selling.
Obviously, it is not the best trading strategy, but it will do for our purpose (just for now). If you want to improve it, here are some pointers. First, you may want to have a system, that is not ALWAYS in the market. Second, you may want to use more than one indicator as inputs, and maybe, more than one NN, so that the trading decision is made based on few predicted indicators. We will add some improvements to the trading algorithm later.
We use some standard assumptions of the FOREX trading: spread is 5 points, leverade is 100, min. lot is $100 (mini-FOREX).
Let's take a look at our "trading" system. Once again, it is an oversimplified one. An important note: the TestNn() is called last, and it has access to all variables that were created to that point. So if you see a variable that I am using, without initializing it, it probably means that it was initialized in NewNn(), TeachNn() or some other function that was called prior to TestNn().
To make things easier, comments are placed in the code.
forex_nn_01.tsc, part 2.
Few words about the drawdown. There are few ways of calculating it, and we are using what I consider the most "honest". The drawdown is a measure of instability of our system. What is a chance, that it will loose money? Lets say the initial amount is $1000. If the profit goes 100, 200, 300, 400. the drawdown is 0. If it goes 100, 200, 100. then the drawdown is 0.1 (10%), as we have just lost an amount, equal to 1/10 of the initial deposit (from 1200 to 1100).
I would strongly advice against using trading systems with large drawdowns.
Also, here I use a drawdown, that is to be used with variable lot size. However, in the actual samples, that come with the eBook, you will see another version:
As you can see, here we always use 1000 (the initial amount) to calculate the drawdown. The reason is simple: we always use the same lot size (no money management yet), so there is no difference, how much money we have already accumulated on our account, an average profit should be constant. The worse possible scenario in this case looks like this: from the very beginning ($1000 on account) we are loosing money. If we use 1000$ to calculate the drawdown, we will get the worse drawdown. This will help us not to trick ourselves. For example, say, we traded for some time, and we have $10,000$ on our account. Then we loose some money, and we now have $8,000. Then we have recovered, and got $12,000. Good trading system? 아마도 그렇지 않습니다.
Let's repeat the logic again, as it is very important (and it will become even more important, when we start doing money management). We trade using fixed size lots. So, statistically, there is no guarantee, that the maximum loss will not happen at the very beginning, when we only have $1000. And if it happens, we will have -1000$ (10,000 - 8,000), so the trading system is probably too risky.
When we talk about the money management (probably, not in this text), we will have to use different approach to drawdown calculation.
Note, that in this trading system, I am using the worse possible scenario: I am buying using High and selling, using Low. Many testers do not follow these rules, and create trading systems, that work fine on historical data. But in the real life, these trading systems have very poor performance. 왜?
Take a look at the price bar. It has Open, High, Low and Close. Do you know, how the price was moving inside the bar? No. So, let's say, your trading system generated a "buy" signal, at the bottom of the price bar (if dLow.
Note that I am using dLotSize equal 0.1 lot ($100). Obviously, in the "real" trading, you will benefit greatly, if the lot size is calculated depending on the money you have, something like:
forex_nn_01.tsc, part 3.
However, we are doing testing here, not trading. And for testing, we need, among other things, to see how smooth the profit curve is. This is much easier to do if the lot size is the same (in ideal situation, for dLotSize = 100 we will get a straight line, with some positive slope, while in case of the adjustable lot size we will get an exponent, that is much harder to analyze).
Later in this text, we will apply money management rules to our trading system, but not yet.
After we are done with the last part of our testing function, let's walk through the rest of the code.
The following function creates a CLV indicator. It takes the interval as a parameter, which means that we can call it many times, during the optimization, passing different numbers.
Note, that I am using the NN that works in the 0 - 1 interval. The data can be normalized, of course, but I chose to divide the indicator by 2 and to add 0.5, so that it is in 0 - 1 range.
forex_nn_01.tsc, part 4.
To make lag file, we can use the CREATE_LAG_FILE function. Alternatively, we can do it by explicitly providing all the necessary code. In this case, we have more control, and we are going to need it, if we begin varying number of lagged columns and so on.
forex_nn_01.tsc, part 5.
The nRemoveFirst parameter is important. Many functions, like indicators, moving averages, lag generators, for that matter, do not work well within the first few records of the dataset. Let's say we have MA(14) - what will it place in the records 1 - 13? So we choose to simply remove the first few (unreliable) records.
For the NewNn, as well as for all functions of this program, we need to pass as parameters only what can be changed during optimization process. For example, there is no need to pass a "skip before" parameter, as it is always the same.
forex_nn_01.tsc, part 6.
The TeachNn function simply brings up the NN dialog.
forex_nn_01.tsc, part 7.
Finally, we need a charting function. It is not mandatory, but it is always a good idea to see what our profit line looks like. The following code uses the XML to produce a chart, so it is a good idea to read the tutorial. Alternatively, you can draw the chart, rather than saving it in a file. To do it, use one of the samples, that are in the samples/scripts directory. Finally, you can modify the code, to produce HTML, rather than XML. HTML is easier to learn, but the code itself will be a bit less readable.
forex_nn_01.tsc, part 8.
Compile and Run the script.
잘. As expected, using 7 hours as an interval for the CLV produced very poor results:
FOREX Trading Strategies and Optimization.
The reason for the poor results is quite obvious: we used the Interval, Stop Loss, buy and sell levels and other parameters, that were purely random - we just picked first that came in mind! What if we try few combinations?
FOREX Trading Signals: What to optimize?
First of all, by overoptimizing the buy and sell levels, we can ruin our future performance. However we still can tune them, especially, if the performance is close for close values of buy and sell limits. For example, if we have -10% profit at buy limit equal 0.3, and +1000% profit when it equals 0.35, then there is probably a lucky coincidence, and we should not use 0.35 for our trading system, as in future it will probably not happen again. If, instead, we have -10% and +10% (instead of +1000%), it may be safer to use.
Generally, our trading system should be built for WORSE possible scenario, as if during the "real" trading the performance will be better, then during the test, we will survive, but not the other way around.
We can vary the value for the indicator interval, provided we have enough trades, so that we can be confident, in terms of statistics, in the performance of a system.
We certainly can vary the number of neurons, I don't think it can be overoptimized easily.
We can vary number of inputs and lags for inputs. It is possible to overoptimize this, but it is not very likely to happen.
And, of course, we can try different indicators.
Accurate FOREX Signals: How to optimize?
As have already been mentioned, if we start trying all possible combinations, it will take forever. So we are going to cheat. We will create pre-defined sets of parameters, that we think are reasonable, and pass them to the program.
To make as few calculations as possible, note, that Clv-1 and Clv-2 are, probably, important, but what about Clv-128? And - if we already have Clv-128, do we need Clv-129? Probably, not. So we are going to have something like Clv-1, Clv-2, Clv-4, Clv-8, . Clv-128 with just few variations, which will make our calculation time thousands times shorter.
FOREX Professional System Trading: Can it work at all?
What is it exactly we want to predict? Until this point we have used 1 hour chart for EURUSD, and we were predicting the next bar's CLV. Will the CLV+2 be better? What about CLV+3?
Also, especially considering the poor performance of our first trading system, it would be nice to know, that - at least in the "ideal" world, the goal (profitable trading) can be achieved.
To answer these questions, let's create a simple testing program. We assume, that our prediction is 100 % accurate, and, based on this assumption, we will use CLV+N, not the NN predicted one. That's right - we are going to take data from the future, and to use them instead of the NN prediction. This approach wouldn't work in the real life, of course, but at leats, it will give us some ideas of what to expect.
When looking at the results, please keep in mind, that we are not using any advanced money management, our lot size is set to a minimum $100. If you use variable lot sizes, results will be dramatically different. But even at a lot size set to 0.1 we can see (below) that getting the information from the future is an ultimate trader's "holly graal".
forex_nn_02.tsc, part 1.
You are already familiar with this code, it was used in FOREX_NN_01.TSC. It handles data loading. The only difference is in the part that obtains the list of files in the "images" directory and deletes all files with the. PNG extention. The reason for this code is simple: during our tests we are going to create many - may be, thousands - image files. We don't want them to hung around after we are done. So at the beginning of the script we are deleting images, created by other scripts.
forex_nn_02.tsc, part 2.
Just a few comments. We do not want to try all possible values for, for example, CLV interval. Instead, we can create an array, that contains only values we want to test. Then (see below) we will walk through this array.
Stop losses are important part of any trading strategy, so I have decided to vary them as well. It is a dangerous idea, however, as it is easy to overoptimize the system.
I am planning to test different values for buy and sell levels, but it will be done in cycle, without using arrays.
Unlike in our previous example, we want to have a large XML file, containing many images. To do it, I have moved the code, that is forming the XML header and footer outside of the Chart function. Read one of the online XML tutorials for details.
Note, that I am using 0 as the first lag, which means, that first I am testing the indicator (CLV) that was not "shifted" from the future. Just to get an idea, how good out "trading system" would be without NN (horrible, is the right word. It is loosing all the money).
Cortex uses the Internet Explorer control to display XML pages. When pages grow large, it takes a lot of memory. If your computer cannot handle it, consider creating multiple XML or HTML pages, instead. In the case of forex_nn_02, it should not be a problem, as the page is relatively short. Alternatively (that is what I am doing in scripts later in this text), create XML file, but do not open it from Cortex. Open them using Internet Explorer instead - unlike IE control, the Internet Explorer does not have the memory problem.
Now the code that is trying different combinations of parameters.
forex_nn_02.tsc, part 3.
Here, we are using nested cycles. In every cycle, we are assidning some variable (for example, nInterval for the outer cycle). This way the cycle will assign values of all elements of a corresponding array, one in a time. Then WITHIN it, the inner cycle is used, and so on, so that all combinations of all array elements are tested.
In the innermost cycle, I am calling the Test() function, to "test trade", and Chart() to add a new picture to a list of images saved on disk. Note, that this Chart() does not show any images, until all cycles are completed.
The Test() and CreateClv() functions are almost the same as in the previous example. The only real difference is due to the fact that it is called more then once. To do it, I am calling ARRAY_REMOVE to cleanup arrays.
Also, notice, that we are only creating charts for the combinations of parameters, that produce trading system with positive profit. Otherwise, we call "continue", to skip the Chart() function.
Finally, we have Take Profit now, so our trading system can be a bit more flexible.
forex_nn_02.tsc, part 4.
The Chart() function was broken into two pieces. The header and the footer should be written to the XML file only once, so they were moved to the main part of the program.
Also, I am using the counter, to save files under the different names. The information about parameters is written to the header of an image, so we can easily see which one it is. Finally, images are only saved for winning configurations, meaning the balance at the end should be more, then at the beginning.
forex_nn_02.tsc, part 5.
Run the program (it will take some time to complete). You will end up with a large XML page with images, one for each winning configuration.
Some of the results are great, however, as we used data "from the future", this system will not work in the real life. Actually, if you look at the Test() function, you will notice, that the cycle stops before we reach the last element of arrClose:
for(nBar = nRemoveFirst + 1; nBar.
THIS IS C++, just an example.
As you can see, the code is really simple. Now lets do the same using the SLANG script. As in examples before, we will keep the overall structure of the code, so that this example looks familiar. The only difference is that instead of using the built-in APPLY_NN function, we call the function of our own. The code that we do not use (such as cycles) is commented, but not removed.
Note, that the logic behind it was discussed in Neural Networks and Stock / Forex Trading article already. Briefly, the output of this script is formated to be compatible with the MQL, MetaTrader's scripting engine. MetaTrader is a trading platform we use, if you want something different, like TradeStation, for example, you will have to alter the code to comply to its syntax.
Then, in the following chapters, we are going to insert this code in the MetaTrader's indicator, and to use it to trade.
Porting script to trading platform.
The next step is not really required, but it is something, that may be useful. We are going to create a version of a tsc file (one above), but this time, we will use SLANG (Cortex scripting language) to emulate APPLY_NN function. The reason is, in the next chapter we are going to port it to the scripting language of a MetaTrader trading platform, so it is a good idea to make sure everything works.
After we run this function, we discover, that the result it produces is the same, as the forex_nn_05a produced, which means the code works fine. :
Note, that there is a difference at the beginning of the charts, as "our" NN does not try to process the data at the beginning (where lag is incomplete), while the built-in NN does not "know" about this problem. Of course, it doesn't affect the result, as the beginning of the chart is ignored by using the nRemoveFirst parameter in our script (set to 200, which is guaranteed to be larger, then our lag).
Using third-party trading platform.
We have the NN that (more or less) can be used. We have the script, implementing this NN without calls to the Cortex-specific NN functions. Now we are going to port it to the trading platform that can be used for the real trading, which means it can contact brocker, place orders and earn (or loose) money.
As a trading platform, I am going to use MetaTrader.
Disclaimer: I am not related to MetaQuotes in any way. I do not work for them, I am not their affiliate and so on. I use MetaTrader, ONLY because I like it.
I find this program user-friendly, flexible and powerful, and "not a monster". Also, it is free (compare to other packages of this class).
The only (minor) problem is that it is not always easy to find the dealer using MT in your area. Then, when you do a research, you may find couple of brockers, with screenshots on their web sites, that look suspiciously familiar. Yes, they use MetaTrader, but they don't call it MetaTrader!
I have asked for clarification at the company's forum, and they have told me, that they don't reveal brockers using their services. Very strange.
One of the brockers that is not hiding the fact they use MT, is Alpari. They will allow you to open a Demo account, so that you can trade in a real time, but without risking your money.
I am not going to recommeng services of Alpari. Once again, I am not being paid for that. Try their Demo account, and use your own judgement. Or you can start your own research at Internet forums.
Finally, if you do not like the MT, you can probably follow the example below using TS, MS or some other trading platform. This is just an example.
Our MT-based trading system will include two files, the indicator and an expert. This is the way they call it in MQL (scripting language of MT), and I am going to follow this naming convention.
The indicator implements the neural network and draws a chart. An expert takes these data and does trading. As MetaTrader has a "strategy tester", we will be able to test our strategy, to see how good it is.
I will assume, that you are familiar with MQL programming, it is quite close to SLANG and tutorials can be found both at MetaQuotes and Alpari.
Finally, I am using the code structure, that is borrowed from MetaQuotes forum, permission to use it the author of the corresponding posts had granted me permission to use fragments of his code.
Also, as some of our MetaTrader code is the same for all experts and indicators, we moved it to a separate library file. MetaTrader's libraries are nothing but includable files. This library takes care of synhronization, when two or more expert are trying to run in the same time, as well as of few other things. If you use MetaTrader, it will help you to create robust experts, in any case, the MQL language is easy to understand.
mylib. mql, a helper library.
The code should look familiar, all I did was re-writing it, using slightly different language syntax of MQL.
This indicator has two buffers, and draws two lines, one for the original NOC, and one for the NN-predicted NOC. For trading, you don't have to draw both indicator lines, of course (see MQL tutorials to learn how to do it), but I have decided to show them together, so you can compare.
Another difference, that you should know about, is the way MT performs testing. It may, in some cases, be more accurate, then one we did (we did the worse case scenario). Of course, you can always to change the SLANG script from the examples above, to implement any logic you want.
The result of our testing in MT is a bit better, then in Cortex, due to all these reasons.
Keep in mind, that MT calculates the DD in a different way. I still think, that my way is better.
In should be especially noted, that no additional optimization had been performed using MetaTrader's optimizer. We have just plugged our MTS (mechanical trading system) in, and it worked as expected.
That is it. You can now create Cortex Neural Network, optimize it to do trading, and to port it to the trading platform of your choice.

No comments:

Post a Comment