Скачать MetaTrader 5

самый простой мультивалютник

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
NIkolay2000
625
NIkolay2000  

Всем привет.

Только начал учить мт5. До этого писал на мт4. Скопилось много мультивалютников которые хотел проверить под тестером мт5.

Начал изучать сорци которые нашел в комьюнити. Вообщем достаточно сложные для понимания ибо объектная модель дико отличается.

Есть ли сорци попроще желателньо мультивалютные, в котором имнимум объектных моментов, просто используются обычные приказы для откртия и закрытия ордеров? 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
Konstantin Chernov
9823
Konstantin Chernov  

Скидывай сюда свой самый простой мультик с описанием, может кто и переделает.

Или просто OnTimer() используешь и все, вот почти и мультик.

NIkolay2000
625
NIkolay2000  
Хорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
DFTgroup
26
DFTgroup  
NIkolay2000:
Хорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
Самые качественная история это у метаквотов
NIkolay2000
625
NIkolay2000  
мне нужно не качество а именно скорость.
NIkolay2000
625
NIkolay2000  
https://www.mql5.com/ru/code/452 - вот эту штуку тестил 30 минут минимум, а потом начал ругатся что не найден индикатор который ему нужен для определения сигналов для входов
Resonance Hunter
Resonance Hunter
  • голосов: 6
  • 2011.10.14
  • Nikolay Kositsin
  • www.mql5.com
Мультивалютная экспертная система, анализирующая резонансные явления на смежных финансовых активах.
NIkolay2000
625
NIkolay2000  
//+------------------------------------------------------------------+
//|                                                 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);
  }
//+------------------------------------------------------------------+

Konstantin Chernov
9823
Konstantin Chernov  
NIkolay2000:
Хорошо, спасибо, скоро приатачу. Я нашел парочку в кодебазе, вроде удобочитаемы. Пытасюь на тестере прогнать. Подтягиваются котировки ну очень долго, хотя делаю тест по дневным барам и по ценам октрытия. Можете посоветовать брокра у которого котироки истории подтягиваются быстро и у которого есть мт5?
Первый раз грузятся котировки по всем символам, соответственно это занимает время. В следующий раз уже не будет грузить всю историю, а только ту которой не хватает.
Konstantin Chernov
9823
Konstantin Chernov  


Примерно так

#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,"");
     
     }
  
  }


NIkolay2000
625
NIkolay2000  
Konstantin83:


Примерно так




благодарю, буду тестить и развивать этот код.
Konstantin Chernov
9823
Konstantin Chernov  

Еще в инит нужно добавить

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();


......


12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий