Торговля советником на двух парах одновременно

 
Народ!Подскажите,можно ли сделать советник на 2 пары?Совсем простенький,но чтобы одновременно на 2 парах торговал?
 
Vladimir Zaharov:
Народ!Подскажите,можно ли сделать советник по 2 пары?Совсем простенький,но чтобы одновременно на 2 парах торговал?
Если совсем простенький, то запросто:
//+------------------------------------------------------------------+
//|                                                   CtradeTest.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh>
input double d_Volume=0.01;
//---
CTrade         m_trade;                      // trading object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   m_trade.Buy(0.01,"EURUSD");
   m_trade.Sell(0.01,"USDJPY");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
Файлы:
 

как ему прописать условия тейка и стоп лосса,подскажи

 
каша из топора версия 2.
 
Vladimir Zaharov:

как ему прописать условия тейка и стоп лосса,подскажи

Для начала нужно придумать алгоритм торговли. Предлагаю так: если на текущем таймфрейме свеча №1 закрылась выше свечи №2 - то Buy:

Условие на BUY 

так нормально? 

 

Итак, заготовка:

//+------------------------------------------------------------------+
//|                                                   CtradeTest.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.000"
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
//---
input string first   ="EURUSD";
input string second  ="USDJPY";
//---
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+


m_trade - этот объект будет отвечать за торговлю - при помощи методов торгового класса CTrade будем открывать позиции.

m_symbol - это объект класса CSymbolInfo - этот класс предоставляет информацию про инструменты, при помощи него будет получать текущие цены по двум выбранным инструментам. 

Файлы:
 
Nikolay Ivanov:
каша из топора версия 2.
всё равно дорого встанет
 
Vladimir Karputov:

Итак, заготовка:

//+------------------------------------------------------------------+
//|                                                   CtradeTest.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.000"
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
//---
input string first   ="EURUSD";

input string second  ="GBPUSD";

take profit=10

stop loss=20

//---
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
смотри мне нужно что бы было,примерно,так.Сорри не силен в коде
 

Усложняем: теперь два объекта класса CSymbolInfo - для каждого инструмента:

//+------------------------------------------------------------------+
//|                                                   CtradeTest.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.001"
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
//---
input string first   ="EURUSD";
input string second  ="USDJPY";
//---
CTrade         m_trade;                      // trading object
CSymbolInfo    m_symbol_1;                   // symbol info object for symbol "first"
CSymbolInfo    m_symbol_2;                   // symbol info object for symbol "second"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   m_symbol_1.Name(first);
   m_symbol_1.Refresh();
   m_symbol_2.Name(second);
   m_symbol_2.Refresh();

   RefreshRates();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!RefreshRates())
      return;
   double bid_1=m_symbol_1.Bid();
   double bid_2=m_symbol_2.Bid();
   Comment(first," Bid: ",DoubleToString(bid_1,m_symbol_1.Digits()),"\n",
           second," Bid: ",DoubleToString(bid_2,m_symbol_2.Digits()));
  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates()
  {
//--- refresh rates
   if(!m_symbol_1.RefreshRates() || !m_symbol_2.RefreshRates())
      return(false);
//--- protection against the return value of "zero"
   if(m_symbol_1.Ask()==0 || m_symbol_1.Bid()==0 || m_symbol_2.Ask()==0 || m_symbol_2.Bid()==0)
      return(false);
//---
   return(true);
  }
//+------------------------------------------------------------------+

Поместите его на любой символ (не на EURUSD и не на USDJPY). Что показывает?

Файлы:
 
Vladimir Zaharov:
Но при этом,при срабатывании стоп лосса по одной из пар,советник  открывает сделку по той же позиции,но уже с утроенным объемом,пока не выйдет в плюс,а потом снова торгует по объему выставленному изначально
 
Vladimir Zaharov:
Но при этом,при срабатывании стоп лосса по одной из пар,советник  открывает сделку по той же позиции,но уже с утроенным объемом,пока не выйдет в плюс,а потом снова торгует по объему выставленному изначально
мне фунт нужен
Причина обращения: