Скидывай сюда свой самый простой мультик с описанием, может кто и переделает.
Или просто OnTimer() используешь и все, вот почти и мультик.
Хорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
NIkolay2000:
Хорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
Самые качественная история это у метаквотовХорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
мне нужно не качество а именно скорость.
https://www.mql5.com/ru/code/452 - вот эту штуку тестил 30 минут минимум, а потом начал ругатся что не найден индикатор который ему нужен для определения сигналов для входов

Resonance Hunter
- голосов: 6
- 2011.10.14
- Nikolay Kositsin
- www.mql5.com
Мультивалютная экспертная система, анализирующая резонансные явления на смежных финансовых активах.
//+------------------------------------------------------------------+ //| simple multi.mq4 | //| 11 | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "11" #property link "http://www.metaquotes.net" extern string pair1="EURUSD"; extern string pair2="GBPCHF"; extern string pair3="USDCHF"; extern string pair4="USDJPY"; extern string pair5="USDCAD"; extern string pair6="EURJPY"; extern string pair7="AUDNZD"; extern string pair8="NZDUSD"; extern double lots1=1; int tic,bc; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- bc=Bars; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if (bc!=Bars&&iClose(pair1,NULL,1)>iOpen(pair1,NULL,1)&&iClose(pair1,NULL,1)>iOpen(pair1,NULL,1)) { tic=OrderSend(pair1, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); tic=OrderSend(pair2, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); tic=OrderSend(pair3, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); tic=OrderSend(pair4, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); tic=OrderSend(pair5, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); tic=OrderSend(pair6, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); tic=OrderSend(pair7, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); tic=OrderSend(pair8, OP_BUY, lots1, 0, 3,0,0 , "", 777,0, Lime); } //---- return(0); } //+------------------------------------------------------------------+
NIkolay2000:
Хорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
Первый раз грузятся котировки по всем символам, соответственно это занимает время. В следующий раз уже не будет грузить всю историю, а только ту которой не хватает.Хорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
Примерно так
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
input string pair1="EURUSD";
input string pair2="GBPCHF";
input string pair3="USDCHF";
input string pair4="USDJPY";
input string pair5="USDCAD";
input string pair6="EURJPY";
input string pair7="AUDNZD";
input string pair8="NZDUSD";
input double lots1=1;
int tic,bc;
double dLocSL = 0;
double dLocTP = 0;
MqlRates rt[2]; // Массив значений цен для 2-х последних баров
CTrade Exp_Trade; // trading object
CSymbolInfo Exp_Symbol_Info1; // symbol info object
CSymbolInfo Exp_Symbol_Info2; // symbol info object
CSymbolInfo Exp_Symbol_Info3; // symbol info object
CSymbolInfo Exp_Symbol_Info4; // symbol info object
CSymbolInfo Exp_Symbol_Info5; // symbol info object
CSymbolInfo Exp_Symbol_Info6; // symbol info object
CSymbolInfo Exp_Symbol_Info7; // symbol info object
CSymbolInfo Exp_Symbol_Info8; // symbol info object
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
EventSetTimer(60);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
if(CopyRates(pair1,PERIOD_H1,0,2,rt)!=2) // Копируем в массив значения цен 2-х последних баров
{
Print("CopyRates "+pair1+" не загружена история");
}
if(rt[0].close > rt[0].open)
{
Exp_Trade.PositionOpen(pair1,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info1.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair2,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info2.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair3,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info3.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair4,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info4.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair5,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info5.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair6,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info6.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair7,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info7.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair8,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info8.Ask(),dLocSL,dLocTP,"");
}
}
#include <Trade\SymbolInfo.mqh>
input string pair1="EURUSD";
input string pair2="GBPCHF";
input string pair3="USDCHF";
input string pair4="USDJPY";
input string pair5="USDCAD";
input string pair6="EURJPY";
input string pair7="AUDNZD";
input string pair8="NZDUSD";
input double lots1=1;
int tic,bc;
double dLocSL = 0;
double dLocTP = 0;
MqlRates rt[2]; // Массив значений цен для 2-х последних баров
CTrade Exp_Trade; // trading object
CSymbolInfo Exp_Symbol_Info1; // symbol info object
CSymbolInfo Exp_Symbol_Info2; // symbol info object
CSymbolInfo Exp_Symbol_Info3; // symbol info object
CSymbolInfo Exp_Symbol_Info4; // symbol info object
CSymbolInfo Exp_Symbol_Info5; // symbol info object
CSymbolInfo Exp_Symbol_Info6; // symbol info object
CSymbolInfo Exp_Symbol_Info7; // symbol info object
CSymbolInfo Exp_Symbol_Info8; // symbol info object
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
EventSetTimer(60);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
if(CopyRates(pair1,PERIOD_H1,0,2,rt)!=2) // Копируем в массив значения цен 2-х последних баров
{
Print("CopyRates "+pair1+" не загружена история");
}
if(rt[0].close > rt[0].open)
{
Exp_Trade.PositionOpen(pair1,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info1.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair2,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info2.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair3,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info3.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair4,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info4.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair5,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info5.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair6,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info6.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair7,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info7.Ask(),dLocSL,dLocTP,"");
Exp_Trade.PositionOpen(pair8,ORDER_TYPE_BUY,lots1,Exp_Symbol_Info8.Ask(),dLocSL,dLocTP,"");
}
}
Konstantin83:
благодарю, буду тестить и развивать этот код.
Примерно так
Еще в инит нужно добавить
Exp_Symbol_Info1.Name(pair1);
Exp_Symbol_Info1.Refresh();
Exp_Symbol_Info1.RefreshRates();
Exp_Symbol_Info2.Name(pair2);
Exp_Symbol_Info2.Refresh();
Exp_Symbol_Info2.RefreshRates();
......

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем привет.
Только начал учить мт5. До этого писал на мт4. Скопилось много мультивалютников которые хотел проверить под тестером мт5.
Начал изучать сорци которые нашел в комьюнити. Вообщем достаточно сложные для понимания ибо объектная модель дико отличается.
Есть ли сорци попроще желателньо мультивалютные, в котором имнимум объектных моментов, просто используются обычные приказы для откртия и закрытия ордеров?