0
Спасибо *good* 
avatar

vypchela

  • 3 сентября 2022, 08:25
0
Андрей если можно добавьте время торговли.
avatar

vypchela

  • 4 мая 2022, 12:01
0
Большое спасибо!
avatar

vypchela

  • 2 мая 2022, 06:09
0
Отпуск это хорошо!
avatar

vypchela

  • 17 апреля 2022, 10:35
0
Подскажите как сделать проверку средств для МТ5
if(AccountFreeMarginCheck(Symbol(),type,Lot())<=0)
     
{
     
Print("Недостаточно средств для открытия позиции объемом: ",Lot());
     
return;
     
}
avatar

vypchela

  • 17 декабря 2021, 05:49
0
Андрей можно ли изменить
string symbols[4];

чтобы не править код, при добавлении или удаления пары из строки
extern  string Symbols = "EURCHF,GBPUSD,EURUSD,USDJPY";

За ранее спасибо.
avatar

vypchela

  • 9 декабря 2021, 04:55
0
Хорошо, пусть будет так. Спасибо.
avatar

vypchela

  • 5 декабря 2021, 17:25
0
А для МТ4 недавно делали, правда еще не тестил тоже такое может быть?
avatar

vypchela

  • 5 декабря 2021, 15:20
0
Спасибо Андрей, а одной строкой можно сделать:
input string Symbols = «EURUSD,GBPUSD»;
а то не очень удобно, что при добавлении пары править код.
avatar

vypchela

  • 5 декабря 2021, 15:10
0
Советник для теста, можно сделать любое условие для входа, главное открытие ордера один раз в день и сделать мультивалютник как на заказе для МТ4 zakaz.opentraders.ru/63287.html
avatar

vypchela

  • 5 декабря 2021, 13:12
0
Сделал, спасибо.
avatar

vypchela

  • 5 декабря 2021, 12:51
0
Вот код, что пытался сделать.

//+------------------------------------------------------------------+
//|                                                    ZeroPoint.mq5 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.02"

#include <Trade\Trade.mqh>             // Подключаем торговый класс CTrade

//--- входные параметры эксперта
input
int      TakeProfit = 500;       // Тейкпрофит
input
int      StopLoss   = 500;       // Стоплосс
input
int      BULevel    = 200;       // Уровень БУ
input
int      BUPoint    = 20;        // Пункты БУ
input
int      AllSymbols = 1;         // 0-символ графика 1-все символы
input
int      Slip       = 50;        // Проскальзывание
input
double   Lot        = 0.01;       // Количество лотов для торговли
input
long     Magic      = 123;       // Магик

input  
string Symbols = "EURUSD,GBPUSD";

CTrade trade;                          // Используем торговый класс CTrade
long m=0;
string symbols[4];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
 
{
//---
   
Array();
//---
   
return(INIT_SUCCEEDED);
 
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
 
{
//---

 
}
//+------------------------------------------------------------------+
void Array()
 
{
   symbols
[0]=StringSubstr(Symbols,0,6);

   
for(int i=0; i<4; i++)
     
{
      symbols
[i]=StringSubstr(Symbols,i*(6+1),6);
     
}
 
}
//+------------------------------------------------------------------+
//|              1 сделка в день                                     |
//+------------------------------------------------------------------+
bool DayDeal(string symb)
 
{
   
if(HistorySelect(0,TimeCurrent()))
     
{
     
if(PositionGetString(POSITION_SYMBOL)==symb)
       
{
         datetime t
=(datetime)HistoryDealGetInteger(HistoryDealGetTicket(HistoryDealsTotal()-1),DEAL_TIME);
         
if(TimeCurrent()-t<24*3600)
           
{
           
return(false);
           
}
       
}
     
}
   
return(true);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenBuy(string symb)
 
{
// Лучшее предложение на покупку
   
double Ask=SymbolInfoDouble(symb,SYMBOL_ASK);
// Лучшее предложение на продажу                          
   
double Bid=SymbolInfoDouble(symb,SYMBOL_BID);
//--- готовим запрос
   
MqlTradeRequest request;
   request
.action = TRADE_ACTION_DEAL;                                 // немедленное исполнение
   request
.price = NormalizeDouble(Ask,_Digits);                       // последняя цена ask
   request
.sl = NormalizeDouble(Ask - StopLoss*_Point,_Digits);        // Stop Loss
   request
.tp = NormalizeDouble(Ask + TakeProfit*_Point,_Digits);      // Take Profit
   request
.symbol= symb;                                               // символ
   request
.volume = Lot;                                               // количество лотов для торговли
   request
.magic = Magic;                                              // Magic Number
   request
.type = ORDER_TYPE_BUY;                                      // ордер на покупку
   request
.type_filling = ORDER_FILLING_FOK;                           // тип исполнения ордера - все или ничего
   request
.deviation=Slip;                                             // проскальзывание от текущей цены
//--- отправим торговый приказ
   
MqlTradeResult result={0};
   
if(OrderSend(request,result))
//--- выведем в лог ответ сервера  
   
Print(__FUNCTION__,":",result.comment);
   
if(result.retcode==10016) Print(result.bid,result.ask,result.price);    
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenSell(string symb)
 
{
// Лучшее предложение на покупку
   
double Ask=SymbolInfoDouble(symb,SYMBOL_ASK);
// Лучшее предложение на продажу                          
   
double Bid=SymbolInfoDouble(symb,SYMBOL_BID);
   
//--- готовим запрос
   
MqlTradeRequest request;
   request
.action = TRADE_ACTION_DEAL;                                 // немедленное исполнение
   request
.price = NormalizeDouble(Bid,_Digits);                       // последняя цена ask
   request
.sl = NormalizeDouble(Bid + StopLoss*_Point,_Digits);        // Stop Loss
   request
.tp = NormalizeDouble(Bid - TakeProfit*_Point,_Digits);      // Take Profit
   request
.symbol= symb;                                               // символ
   request
.volume = Lot;                                               // количество лотов для торговли
   request
.magic = Magic;                                              // Magic Number
   request
.type = ORDER_TYPE_SELL;                                     // ордер на продажу
   request
.deviation=Slip;                                             // проскальзывание от текущей цены
//--- отправим торговый приказ
   
MqlTradeResult result={0};
   
if(OrderSend(request,result))
//--- выведем в лог ответ сервера  
   
Print(__FUNCTION__,":",result.comment);
   
if(result.retcode==10016) Print(result.bid,result.ask,result.price);
   
{
 
   
}
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenPos(string symb)
 
{
// Лучшее предложение на покупку
   
double Ask=SymbolInfoDouble(symb,SYMBOL_ASK);
// Лучшее предложение на продажу                          
   
double Bid=SymbolInfoDouble(symb,SYMBOL_BID);

//--- Стопы
   
double stop=0,take=0;
//--- Buy
   
if(PositionsTotal()<1 && DayDeal(symb))
     
{
     
//--- Вычисляем стопы
     
if(StopLoss>0)   stop=Ask-StopLoss*_Point;
     
if(TakeProfit>0) take=Ask+TakeProfit*_Point;
     
//--- Открываем ордер на покупку
//      trade.PositionOpen(symb,ORDER_TYPE_BUY,Lot,NormalizeDouble(Ask,_Digits),NormalizeDouble(stop,_Digits),NormalizeDouble(take,_Digits));
     
OpenBuy(symb);
     
}
//--- Sell
   
if(PositionsTotal()<1 && DayDeal(symb))
     
{
     
//--- Вычисляем стопы
     
if(StopLoss>0)   stop=Bid+StopLoss*_Point;
     
if(TakeProfit>0) take=Bid-TakeProfit*_Point;
     
//--- Открываем ордер на продажу
//      trade.PositionOpen(symb,ORDER_TYPE_SELL,Lot,NormalizeDouble(Bid,_Digits),NormalizeDouble(stop,_Digits),NormalizeDouble(take,_Digits));
     
OpenSell(symb);
     
}
 
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
 
{
   
string symb = Symbol();
// Лучшее предложение на покупку
   
double Ask=SymbolInfoDouble(symb,SYMBOL_ASK);
// Лучшее предложение на продажу                          
   
double Bid=SymbolInfoDouble(symb,SYMBOL_BID);
   
for(int i=0; i<ArraySize(symbols); i++)
   
{
   
if(symbols[i]!="")
     
{
     
OpenPos(symbols[i]);
//     if(BULevel>0) BU(symbols[i]);
     
}
   
}


   
Comment("\n Pos: ",PositionsTotal(),
           
"\n Symb: ",PositionGetSymbol(0),
           
"\n Magic: ",m);
 
}

//+------------------------------------------------------------------+

avatar

vypchela

  • 5 декабря 2021, 11:15
0
Андрей, пытался сделать мультивалютник как ты делал в заказе: http://zakaz.opentraders.ru/63287.html не получилось, в тестере показывает только одну пару и тестируется только при trade.PositionOpen, для OpenSell OpenBuy пишет ошибку "[Invalid request]", также не получается заставить работать один раз в день. Посмотри пожалуйста если будет время, за ранее спасибо.
avatar

vypchela

  • 5 декабря 2021, 11:10
0
Спасибо всем, разобрался. Дело в самом коде.
avatar

vypchela

  • 1 декабря 2021, 17:58
0
Разъясните, не совсем понимаю Какой ордер? первый, последний? мне не нужно чтобы ордера закрывались общей суммой, а каждый ордер по отдельности.
avatar

vypchela

  • 1 декабря 2021, 13:49
0
Проверил. Все равно закрывает общей суммой в процентах.
avatar

vypchela

  • 1 декабря 2021, 13:02
0
Спасибо, сейчас проверим.
avatar

vypchela

  • 1 декабря 2021, 12:35
0
Да, чтобы закрывался в процентах один ордер либо покупка, либо продажа.
avatar

vypchela

  • 1 декабря 2021, 11:56
0
Ни кто не шифруется, прикрутите выше изложенное в любой код Андрея.
avatar

vypchela

  • 1 декабря 2021, 11:32
Загрузка...