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
Начать торговлю с Альпари