Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Владимир,в мт5 работает,но проблема в том что у меня мт4 и 4значные котировки
Владимир,в мт5 работает,но проблема в том что у меня мт4 и 4значные котировки
я дико извиняюсь,а что нужно поменять,чтобы евро на продажу было?а фунт на покупку
мой брокер его рекомендует
Рекомендует фунт?
терминал
брокер на нем работает
Рекомендует фунт?
Версия 1.004 - выбор типа позиции BUY или SELL:
//| CtradeTest.mq5 |
//| Copyright © 2016, Vladimir Karputov |
//| http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link "http://wmua.ru/slesar/"
#property version "1.004"
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
//---
input string first="EURUSD";
input ushort InpTakeProfit_1 =10; // Take Profit Symbol #1 (in pips)
input ushort InpStopLoss_1 =20; // Stop Loss Symbol #1 (in pips)
input bool BUY_or_SELL_1 =true; // true - BUY, false - SELL
input string second="GBPUSD";
input ushort InpTakeProfit_2 =10; // Take Profit Symbol #2 (in pips)
input ushort InpStopLoss_2 =20; // Stop Loss Symbol #2 (in pips)
input bool BUY_or_SELL_2 =true; // true - BUY, false - SELL
//---
ulong m_magic=15489; // magic number
CPositionInfo m_position; // trade position object
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"
double ExtTakeProfit_1 =0.0;
double ExtStopLoss_1 =0.0;
double ExtTakeProfit_2 =0.0;
double ExtStopLoss_2 =0.0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
m_symbol_1.Name(first);
m_symbol_1.Refresh();
m_symbol_2.Name(second);
m_symbol_2.Refresh();
if(!RefreshRates())
{
Print("Error RefreshRates.",
m_symbol_1.Name()," Bid=",DoubleToString(m_symbol_1.Bid(),Digits()),
m_symbol_1.Name()," Ask=",DoubleToString(m_symbol_1.Ask(),Digits()),
m_symbol_2.Name()," Bid=",DoubleToString(m_symbol_2.Bid(),Digits()),
m_symbol_2.Name()," Ask=",DoubleToString(m_symbol_2.Ask(),Digits()));
return(INIT_FAILED);
}
m_trade.SetExpertMagicNumber(m_magic);
//--- tuning for 3 or 5 digits
int digits_adjust=1;
if(m_symbol_1.Digits()==3 || m_symbol_1.Digits()==5)
digits_adjust=10;
ExtTakeProfit_1 = InpTakeProfit_1 * digits_adjust * m_symbol_1.Point();
ExtStopLoss_1 = InpStopLoss_1 * digits_adjust * m_symbol_1.Point();
digits_adjust=1;
if(m_symbol_2.Digits()==3 || m_symbol_2.Digits()==5)
digits_adjust=10;
ExtTakeProfit_2 =InpTakeProfit_2 * digits_adjust*m_symbol_2.Point();
ExtStopLoss_2 =InpStopLoss_2 * digits_adjust*m_symbol_2.Point();
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
Comment("");
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(!RefreshRates())
return;
//--- count positions
int total=0;
for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of open positions
if(m_position.SelectByIndex(i))
if((m_position.Symbol()==m_symbol_1.Name() || m_position.Symbol()==m_symbol_2.Name()) &&
m_position.Magic()==m_magic)
total++;
if(total==0)
{
if(BUY_or_SELL_1)
m_trade.Buy(0.01,m_symbol_1.Name(),m_symbol_1.Ask(),
m_symbol_1.Bid()-ExtStopLoss_1,
m_symbol_1.Bid()+ExtTakeProfit_1);
else
m_trade.Sell(0.01,m_symbol_1.Name(),m_symbol_1.Bid(),
m_symbol_1.Ask()+ExtStopLoss_1,
m_symbol_1.Ask()-ExtTakeProfit_1);
if(BUY_or_SELL_2)
m_trade.Buy(0.01,m_symbol_2.Name(),m_symbol_2.Ask(),
m_symbol_2.Bid()-ExtStopLoss_2,
m_symbol_2.Bid()+ExtTakeProfit_2);
else
m_trade.Sell(0.01,m_symbol_2.Name(),m_symbol_2.Bid(),
m_symbol_2.Ask()+ExtStopLoss_2,
m_symbol_2.Ask()-ExtTakeProfit_2);
}
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);
}
//+------------------------------------------------------------------+