Автор Тема: исправить ошибку в коде.  (Прочитано 1465 раз)

0 Пользователей и 1 Гость просматривают эту тему.

11 Июнь 2015, 13:27:14
Прочитано 1465 раз

gor1968

  • Новичок

  • Оффлайн
  • *

  • 2
  • Репутация:
    0
я хочу улучить советника, вставить код с временем начало торгов и конца, но мне пишет ошибка, как исправить, Ошибку пишет Выделенным цветом  ( if(UseTradingHours)  пишет - 'if' - expressions are not allowed on a global scope    gor1968.mq4    719    4 )

#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#include <mt4lib.mqh>

string expert="";
extern bool    forex=false; //если счет форекс, то труе, иначе фалзе (нужно для закрытие по профиту)
                            //extern string  list="EURUSD GBPUSD AUDCAD AUDCHF AUDJPY AUDNZD AUDUSD CADCHF CADJPY CHFJPY EURAUD EURCAD EURCHF EURGBP EURJPY EURNZD GBPAUD GBPCAD GBPCHF GBPJPY NZDJPY NZDUSD USDCAD USDCHF USDJPY"; //и т.д. через пробел , наименование должно совпадать с наименованием в терминале (список для опционов, без металлов)
extern string  list="EURUSD_OP GBPUSD_OP AUDCAD_OP AUDCHF_OP AUDJPY_OP AUDNZD_OP AUDUSD_OP CADCHF_OP CADJPY_OP CHFJPY_OP EURAUD_OP EURCAD_OP EURCHF_OP EURGBP_OP EURJPY_OP EURNZD_OP GBPAUD_OP GBPCAD_OP GBPCHF_OP GBPJPY_OP NZDJPY_OP NZDUSD_OP USDCAD_OP USDCHF_OP USDJPY_OP"; //и т.д. через пробел , наименование должно совпадать с наименованием в терминале (список для опционов, без металлов)
extern int     magic=1310; //маджик
extern double  start_lot=1; //начальный лот
extern int     timeout=4; //время до эксперации в минутах, если 09 то отключено
extern double  tp=0; //тейк
extern double  sl=0; //стоп
extern double  koef=2.5; //во сколько увеличивать убыточную сделку (множитель лота)
extern double  max_lot=1000; //максимальный лот, после которого осуществляется сброс лота на начальный, если выставить макс лот 0, то игнорируем ограничение и увеличиваемся до победного (пока не сольет)
extern int     signal_bar=1; //1 по закрытию бара, 0 - по текущему бару (сигнал может пропадать!)
extern int     tf=0; //рабочий период для индикатора! в минутах, варианты: 1,5,15,30,60,240
extern double  profit=100; //в баксах профит, после которого сбрасываем
extern bool    bVirtual=false; //невидимые стопы
extern double  trailingstop=0; //трейлинг стоп, указать пунктов через сколкьо он включается

extern int    PriceActionFilter  = 1;
extern int    Length             = 3;
extern int    MajorCycleStrength = 4;
extern bool   UseCycleFilter     = false;
extern int    UseFilterSMAorRSI  = 1;
extern int    FilterStrengthSMA  = 12;
extern int    FilterStrengthRSI  = 21;
extern bool   UseTradingHours    = false;
extern int    StartHour = 20;  // Начало торговли по времени Брокера
extern int    EndHour = 6;     // Окончание торговли по времени Брокера
bool   alertsOn=false;
extern bool   alertsOnMajorCycle = true;
extern bool   alertsOnMinorCycle = false;
bool   alertsOnCurrent    = false;
bool   alertsMessage      = false;
bool   alertsSound        = false;
bool   alertsNotify       = false;
bool   alertsEmail        = false;

bool   arrowsVisible           = true;
bool   arrowsOnMajorCycle      = true;
color  arrowsMajorUpCycleColor = LimeGreen;
color  arrowsMajorDnCycleColor = Red;
int    arrowsMajorUpCycleCode  = 241;
int    arrowsMajorDnCycleCode  = 242;
int    arrowsMajorCycleSize    = 2;

bool   arrowsOnMinorCycle      = true;
color  arrowsMinorUpCycleColor = DeepSkyBlue;
color  arrowsMinorDnCycleColor = PaleVioletRed;
int    arrowsMinorUpCycleCode  = 159;
int    arrowsMinorDnCycleCode  = 159;
int    arrowsMinorCycleSize    = 5;

string arrowsIdentifier        = "ci arrows1";
double arrowsUpperGap          = 1.0;
double arrowsLowerGap          = 1.0;
bool check;
double balance=0;
datetime tm=0;

string symbols[];
int i_tf=0;
datetime tm_start=0;
double g_balance=0;

int max_thread=100; //максимальное кол-во потоков , которые управляет советник одновременно, фактически будет гараздо меньше
bool bPause=false;


            if(alertsOnMajorCycle && op==0)
              {
               if(buy[0]!=0 && buy[1]==0) op=1;
               else if(sell[0]!=0 && sell[1]==0) op=-1;
              }

            if(alertsOnMinorCycle && op==0)
              {
               if(buy[2]!=0 && buy[3]==0) op=1;
               else if(sell[2]!=0 && sell[3]==0) op=-1;
              }
           }

         bool bContinue=false;
         all=0;
         ArrayInitialize(orders,0);

         for(i=OrdersTotal()-1;i>=0;i--)
           {
            if(!OrderSelect(i,SELECT_BY_POS)) continue;

            if(symbols[j]==OrderSymbol()) bContinue=true;

            if(OrderMagicNumber()==imagic) //проверим есть ли открытые ордера по данному потоку
              {
               orders[OrderType()]++;
               all++;
              }
           }

         if(bContinue) continue; //если мы нашли что по данному инструменту есть открытая сделка, то данный сигнал пропускается
         if(all>0) continue; //пропускаем сигнал если есть открытые сделки в этом потоке

                             //если ордеров в потоке нет, то проверим как закрылись ордера в потоке

         if(all==0 && op!=0)
           {

            int minus=0;
            double last_lot=0;
            string smb="";

            for(i=OrdersHistoryTotal()-1;i>=0;i--)
              {
               if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
               if(OrderMagicNumber()==imagic && OrderOpenTime()>=tm_start) //найдем последний закрытый ордер
                 {
                  if(OrderType()==OP_BUY && ND3(OrderClosePrice()-OrderOpenPrice())<ND3(0.0)) minus=-1;
                  if(OrderType()==OP_SELL && ND3(OrderOpenPrice()-OrderClosePrice())<ND3(0.0)) minus=-1;

                  if(OrderType()==OP_BUY && ND3(OrderClosePrice()-OrderOpenPrice())>ND3(0.0)) minus=0;
                  if(OrderType()==OP_SELL && ND3(OrderOpenPrice()-OrderClosePrice())>ND3(0.0)) minus=0;

                  if(OrderType()==OP_BUY && ND3(OrderClosePrice()-OrderOpenPrice())==ND3(0.0))minus=1;
                  if(OrderType()==OP_SELL && ND3(OrderOpenPrice()-OrderClosePrice())==ND3(0.0))minus=1;

                  last_lot=OrderLots();
                  smb=OrderSymbol();
                  break;
                 }
              }

            if(smb==symbols[j] && minus==-1) continue; //если по этой паре был минус то его пропускаем

                                                       //Comment("Кол-во минусовых: ",minus);   
            if(minus==-1) lot=NLot(last_lot*koef);
            if(minus==1) lot=NLot(last_lot);
            if(minus==0) lot=NLot(start_lot);

            if(lot>max_lot && max_lot>0) lot=NLot(start_lot); //выставим лот на начальный

            int type=-1;
            if(op==1) type=OP_BUY; else type=OP_SELL;
            //подбираем лот если у нас рассчитанным не хватит маржи
            while(AccountFreeMarginCheck(symbols[j],type,lot)<=0 || GetLastError()==134)
              {
               lot=NLot(lot/koef); //пробуем уменьшить
              }

            if(op==1) order_OrderSendNDD(symbols[j],imagic,OP_BUY,lot,-1,sl,tp,DoubleToStr(timeout,0),0,clrBlue,bVirtual);
            else if(op==-1) order_OrderSendNDD(symbols[j],imagic,OP_SELL,lot,-1,sl,tp,DoubleToStr(timeout,0),0,clrRed,bVirtual);

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

void my_OrderCloseAll()
  {
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(!OrderSelect(i,SELECT_BY_POS)) continue;

      if(OrderMagicNumber()>=magic && OrderMagicNumber()<=magic+max_thread)
        { //проверим есть ли открытые ордера по другим инструментам
         order_OrderClose(OrderTicket(),-1,0,CLR_NONE);
        }
     }
  }
//+------------------------------------------------------------------+

void trailing_forex(double level1,double step1,int trailingpause_time=5,bool bvirtual=false)
  {

   datetime tm_buy=0,tm_sell=0;
   double st;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(!OrderSelect(i,SELECT_BY_POS)) continue;

      if(OrderType()>=2) continue;
      if(OrderMagicNumber()>=magic && OrderMagicNumber()<=magic+max_thread)
        {

         string n=OrderSymbol();
         double tick=MarketInfo(n,MODE_TICKSIZE);

         double pt=0;
         double stop=OrderStopLoss();
         double p=p(n);
         if(bvirtual) stop=virtual_get_sl(OrderTicket());

         if(OrderType()==OP_BUY)
           {
            pt=(dBid(n)-OrderOpenPrice())/p;
            // Print("buy pt=",pt);   

            st=NormalizeDouble(MathFloor((dBid(n)-step1*p)/tick)*tick,dDigits(n));
            if(pt>=level1 && level1!=0)
              {
               if(stop==0 || (stop<st && TimeCurrent()-tm_buy>=trailingpause_time))
                 {
                  order_OrderModify(OrderTicket(),-1,st,-1,0,Green,bvirtual);
                  tm_buy=TimeCurrent();
                  continue;
                 }
              }

           }

         if(OrderType()==OP_SELL)
           {
            pt=(OrderOpenPrice()-dAsk(n))/p;

            st=NormalizeDouble(MathFloor((dAsk(n)+step1*p)/tick)*tick,dDigits(n));
            if(pt>=level1 && level1!=0)
              {
               if(stop==0 || (stop>st && TimeCurrent()-tm_sell>=trailingpause_time))
                 {
                  order_OrderModify(OrderTicket(),-1,st,-1,0,Green,bvirtual);
                  tm_sell=TimeCurrent();
                  continue;
                 }
              }

           }

        }

     }

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

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void mvirtual_OrdersToVirtual()
  {
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(!OrderSelect(i,SELECT_BY_POS)) continue;
      if(OrderMagicNumber()>=magic && OrderMagicNumber()<=magic+max_thread)
        {

         if(OrderStopLoss()!=0.0 || OrderTakeProfit()!=0.0)
           {
            virtual_set(OrderTicket(),OrderStopLoss(),OrderTakeProfit());
            order_OrderModify(OrderTicket(),OrderOpenPrice(),0,0,OrderExpiration(),CLR_NONE);
           }

        }

     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void mvirtual_VirtualToOrders()
  {
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(!OrderSelect(i,SELECT_BY_POS)) continue;
      if(OrderMagicNumber()>=magic && OrderMagicNumber()<=magic+max_thread)
        {

         if(OrderStopLoss()==0.0 && OrderTakeProfit()==0.0 && virtual_check(OrderTicket()))
           {
            order_OrderModify(OrderTicket(),-1,virtual_get_sl(OrderTicket()),virtual_get_tp(OrderTicket()),0,CLR_NONE);
           }
        }

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

bool virtual_check(int ticket)
  {
   if(ticket<=0) return (false);
   string n;

   if(IsTesting()) n=StringConcatenate("virtual_",DoubleToStr(ticket,0),"_tp");
   else n=StringConcatenate(DoubleToStr(ticket,0),"_tp");

   if(GlobalVariableCheck(n)) return (true);

   if(IsTesting()) n=StringConcatenate("virtual_",DoubleToStr(ticket,0),"_sl");
   else n=StringConcatenate(DoubleToStr(ticket,0),"_sl");

   if(GlobalVariableCheck(n)) return (true);

   return (false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
if(UseTradingHours)
  {
   datetime currenttime=TimeHour(TimeCurrent());
   if(EndHour<StartHour)
     {
      EndHour+=24;
      if(currenttime<24)
         currenttime+=24;
     }
   if(currenttime<StartHour || currenttime>EndHour)
      trade=false;
  }
//+------------------------------------------------------------------+

11 Июнь 2015, 20:05:20
Ответ #1

Trading-Go

  • Администратор
  • Ветеран

  • Оффлайн
  • *****

  • 2 011
  • Репутация:
    493
  • Пол
    Мужской

    Мужской
К сожалению в данном коде ничего не сделать, он собран из кусков которые никак не связаны друг с другом ...
ВАЖНО НОВОСТЬ О ПЕРЕЕЗДЕ ФОРУМА
Своей помощью я стараюсь не давать готовое, я стараюсь натолкнуть Вас на понимание и на правильные мысли, что бы Вы сами решили свою задачу и получили знания... Как то так...

12 Июнь 2015, 08:12:49
Ответ #2

gor1968

  • Новичок

  • Оффлайн
  • *

  • 2
  • Репутация:
    0
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#include <mt4lib.mqh>

string expert="";
extern bool    forex=false; //если счет форекс, то труе, иначе фалзе (нужно для закрытие по профиту)
                            //extern string  list="EURUSD GBPUSD AUDCAD AUDCHF AUDJPY AUDNZD AUDUSD CADCHF CADJPY CHFJPY EURAUD EURCAD EURCHF EURGBP EURJPY EURNZD GBPAUD GBPCAD GBPCHF GBPJPY NZDJPY NZDUSD USDCAD USDCHF USDJPY"; //и т.д. через пробел , наименование должно совпадать с наименованием в терминале (список для опционов, без металлов)
extern string  list="EURUSD_OP GBPUSD_OP AUDCAD_OP AUDCHF_OP AUDJPY_OP AUDNZD_OP AUDUSD_OP CADCHF_OP CADJPY_OP CHFJPY_OP EURAUD_OP EURCAD_OP EURCHF_OP EURGBP_OP EURJPY_OP EURNZD_OP GBPAUD_OP GBPCAD_OP GBPCHF_OP GBPJPY_OP NZDJPY_OP NZDUSD_OP USDCAD_OP USDCHF_OP USDJPY_OP"; //и т.д. через пробел , наименование должно совпадать с наименованием в терминале (список для опционов, без металлов)
extern int     magic=1310; //маджик
extern double  start_lot=1; //начальный лот
extern int     timeout=4; //время до эксперации в минутах, если 09 то отключено
extern double  tp=0; //тейк
extern double  sl=0; //стоп
extern double  koef=2.5; //во сколько увеличивать убыточную сделку (множитель лота)
extern double  max_lot=1000; //максимальный лот, после которого осуществляется сброс лота на начальный, если выставить макс лот 0, то игнорируем ограничение и увеличиваемся до победного (пока не сольет)
extern int     signal_bar=1; //1 по закрытию бара, 0 - по текущему бару (сигнал может пропадать!)
extern int     tf=0; //рабочий период для индикатора! в минутах, варианты: 1,5,15,30,60,240
extern double  profit=100; //в баксах профит, после которого сбрасываем
extern bool    bVirtual=false; //невидимые стопы
extern double  trailingstop=0; //трейлинг стоп, указать пунктов через сколкьо он включается

extern int    PriceActionFilter  = 1;
extern int    Length             = 3;
extern int    MajorCycleStrength = 4;
extern bool   UseCycleFilter     = false;
extern int    UseFilterSMAorRSI  = 1;
extern int    FilterStrengthSMA  = 12;
extern int    FilterStrengthRSI  = 21;
extern bool   UseTradingHours    = false;
extern int    StartHour = 20;  // Начало торговли по времени Брокера
extern int    EndHour = 6;     // Окончание торговли по времени Брокера
bool   alertsOn=false;
extern bool   alertsOnMajorCycle = true;
extern bool   alertsOnMinorCycle = false;
bool   alertsOnCurrent    = false;
bool   alertsMessage      = false;
bool   alertsSound        = false;
bool   alertsNotify       = false;
bool   alertsEmail        = false;

bool   arrowsVisible           = true;
bool   arrowsOnMajorCycle      = true;
color  arrowsMajorUpCycleColor = LimeGreen;
color  arrowsMajorDnCycleColor = Red;
int    arrowsMajorUpCycleCode  = 241;
int    arrowsMajorDnCycleCode  = 242;
int    arrowsMajorCycleSize    = 2;

bool   arrowsOnMinorCycle      = true;
color  arrowsMinorUpCycleColor = DeepSkyBlue;
color  arrowsMinorDnCycleColor = PaleVioletRed;
int    arrowsMinorUpCycleCode  = 159;
int    arrowsMinorDnCycleCode  = 159;
int    arrowsMinorCycleSize    = 5;

string arrowsIdentifier        = "ci arrows1";
double arrowsUpperGap          = 1.0;
double arrowsLowerGap          = 1.0;
bool check;
double balance=0;
datetime tm=0;

string symbols[];
int i_tf=0;
datetime tm_start=0;
double g_balance=0;

int max_thread=100; //максимальное кол-во потоков , которые управляет советник одновременно, фактически будет гараздо меньше
bool bPause=false;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//----
   bPause=false;
   check=false;
   tm=TimeCurrent();
   i_tf=tf;
   if(i_tf==0) i_tf=Period();

   string s_list=list;
   if(IsTesting()) s_list=Symbol();
   ushort u_sep=StringGetCharacter(" ",0);

   StringSplit(s_list,u_sep,symbols);
   Print("Загружено инструментов: ",ArraySize(symbols));

   tm_start=(datetime)GlobalVariableGet(StringConcatenate(WindowExpertName(),".time"));
   g_balance=GlobalVariableGet(StringConcatenate(WindowExpertName(),".balance"));
   Comment("");

   if(bVirtual) mvirtual_OrdersToVirtual();
   else mvirtual_VirtualToOrders();
//----
   return(INIT_SUCCEEDED);

   int start()
     {
      trade=TRUE;
      if(UseTradingHours)
        {
         datetime currenttime=TimeHour(TimeCurrent());
         if(EndHour<StartHour)
           {
            EndHour+=24;
            if(currenttime<24)
               currenttime+=24;
           }
         if(currenttime<StartHour || currenttime>EndHour)
            trade=false;
        }
      if(UseTradingHours)
         if(trade==FALSE)
            Print(currenttime,"  ============ Trading is ***NOT***allowed now!");
      else
         Print(currenttime,"  ************ Trading ***IS ALLOWED*** now!!!");

      for(int pos_132=0; pos_132<=OrdersTotal()-1; pos_132++)
                     
        }
________________________________________________________________________________________________________________
 ошибка:

  1.   '}' - unexpected end of program    gor1968.mq4    760    9
2.      '{' - unbalanced parentheses    gor1968.mq4    88    3



12 Июнь 2015, 09:17:15
Ответ #3

Trading-Go

  • Администратор
  • Ветеран

  • Оффлайн
  • *****

  • 2 011
  • Репутация:
    493
  • Пол
    Мужской

    Мужской
Это первые критические ошибки при их исправлении высыпает еще штук 50 критических ошибок ...
ВАЖНО НОВОСТЬ О ПЕРЕЕЗДЕ ФОРУМА
Своей помощью я стараюсь не давать готовое, я стараюсь натолкнуть Вас на понимание и на правильные мысли, что бы Вы сами решили свою задачу и получили знания... Как то так...

12 Июнь 2015, 09:19:35
Ответ #4

Trading-Go

  • Администратор
  • Ветеран

  • Оффлайн
  • *****

  • 2 011
  • Репутация:
    493
  • Пол
    Мужской

    Мужской
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#include <mt4lib.mqh>

string expert="";
extern bool    forex=false; //если счет форекс, то труе, иначе фалзе (нужно для закрытие по профиту)
                            //extern string  list="EURUSD GBPUSD AUDCAD AUDCHF AUDJPY AUDNZD AUDUSD CADCHF CADJPY CHFJPY EURAUD EURCAD EURCHF EURGBP EURJPY EURNZD GBPAUD GBPCAD GBPCHF GBPJPY NZDJPY NZDUSD USDCAD USDCHF USDJPY"; //и т.д. через пробел , наименование должно совпадать с наименованием в терминале (список для опционов, без металлов)
extern string  list="EURUSD_OP GBPUSD_OP AUDCAD_OP AUDCHF_OP AUDJPY_OP AUDNZD_OP AUDUSD_OP CADCHF_OP CADJPY_OP CHFJPY_OP EURAUD_OP EURCAD_OP EURCHF_OP EURGBP_OP EURJPY_OP EURNZD_OP GBPAUD_OP GBPCAD_OP GBPCHF_OP GBPJPY_OP NZDJPY_OP NZDUSD_OP USDCAD_OP USDCHF_OP USDJPY_OP"; //и т.д. через пробел , наименование должно совпадать с наименованием в терминале (список для опционов, без металлов)
extern int     magic=1310; //маджик
extern double  start_lot=1; //начальный лот
extern int     timeout=4; //время до эксперации в минутах, если 09 то отключено
extern double  tp=0; //тейк
extern double  sl=0; //стоп
extern double  koef=2.5; //во сколько увеличивать убыточную сделку (множитель лота)
extern double  max_lot=1000; //максимальный лот, после которого осуществляется сброс лота на начальный, если выставить макс лот 0, то игнорируем ограничение и увеличиваемся до победного (пока не сольет)
extern int     signal_bar=1; //1 по закрытию бара, 0 - по текущему бару (сигнал может пропадать!)
extern int     tf=0; //рабочий период для индикатора! в минутах, варианты: 1,5,15,30,60,240
extern double  profit=100; //в баксах профит, после которого сбрасываем
extern bool    bVirtual=false; //невидимые стопы
extern double  trailingstop=0; //трейлинг стоп, указать пунктов через сколкьо он включается

extern int    PriceActionFilter  = 1;
extern int    Length             = 3;
extern int    MajorCycleStrength = 4;
extern bool   UseCycleFilter     = false;
extern int    UseFilterSMAorRSI  = 1;
extern int    FilterStrengthSMA  = 12;
extern int    FilterStrengthRSI  = 21;
extern bool   UseTradingHours    = false;
extern int    StartHour = 20;  // Начало торговли по времени Брокера
extern int    EndHour = 6;     // Окончание торговли по времени Брокера
bool   alertsOn=false;
extern bool   alertsOnMajorCycle = true;
extern bool   alertsOnMinorCycle = false;
bool   alertsOnCurrent    = false;
bool   alertsMessage      = false;
bool   alertsSound        = false;
bool   alertsNotify       = false;
bool   alertsEmail        = false;

bool   arrowsVisible           = true;
bool   arrowsOnMajorCycle      = true;
color  arrowsMajorUpCycleColor = LimeGreen;
color  arrowsMajorDnCycleColor = Red;
int    arrowsMajorUpCycleCode  = 241;
int    arrowsMajorDnCycleCode  = 242;
int    arrowsMajorCycleSize    = 2;

bool   arrowsOnMinorCycle      = true;
color  arrowsMinorUpCycleColor = DeepSkyBlue;
color  arrowsMinorDnCycleColor = PaleVioletRed;
int    arrowsMinorUpCycleCode  = 159;
int    arrowsMinorDnCycleCode  = 159;
int    arrowsMinorCycleSize    = 5;

string arrowsIdentifier        = "ci arrows1";
double arrowsUpperGap          = 1.0;
double arrowsLowerGap          = 1.0;
bool check;
double balance=0;
datetime tm=0;

string symbols[];
int i_tf=0;
datetime tm_start=0;
double g_balance=0;

int max_thread=100; //максимальное кол-во потоков , которые управляет советник одновременно, фактически будет гараздо меньше
bool bPause=false;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//----
   bPause=false;
   check=false;
   tm=TimeCurrent();
   i_tf=tf;
   if(i_tf==0) i_tf=Period();

   string s_list=list;
   if(IsTesting()) s_list=Symbol();
   ushort u_sep=StringGetCharacter(" ",0);

   StringSplit(s_list,u_sep,symbols);
   Print("Загружено инструментов: ",ArraySize(symbols));

   tm_start=(datetime)GlobalVariableGet(StringConcatenate(WindowExpertName(),".time"));
   g_balance=GlobalVariableGet(StringConcatenate(WindowExpertName(),".balance"));
   Comment("");

   if(bVirtual) mvirtual_OrdersToVirtual();
   else mvirtual_VirtualToOrders();

//----
   return(INIT_SUCCEEDED);
} // ----------
   int start()
     {
      trade=TRUE;
      if(UseTradingHours)
        {
         datetime currenttime=TimeHour(TimeCurrent());
         if(EndHour<StartHour)
           {
            EndHour+=24;
            if(currenttime<24)
               currenttime+=24;
           }
         if(currenttime<StartHour || currenttime>EndHour)
            trade=false;
        }
      if(UseTradingHours)
         if(trade==FALSE)
            Print(currenttime,"  ============ Trading is ***NOT***allowed now!");
      else
         Print(currenttime,"  ************ Trading ***IS ALLOWED*** now!!!");

      for(int pos_132=0; pos_132<=OrdersTotal()-1; pos_132++)
                     
        }
ВАЖНО НОВОСТЬ О ПЕРЕЕЗДЕ ФОРУМА
Своей помощью я стараюсь не давать готовое, я стараюсь натолкнуть Вас на понимание и на правильные мысли, что бы Вы сами решили свою задачу и получили знания... Как то так...

16 Июнь 2015, 09:32:02
Ответ #5

Trader

  • Постоялец

  • Оффлайн
  • ***

  • 131
  • Репутация:
    81
gor1968, Я по этому сову отвечал в офф-ветке, почему вы там не пишете, там есть исходник, сову писал Alexandr Gavrilin Опишите что нужно добавить/удалить/изменить.
Да, и еще: к сове идет еще 2 файла, без них ничего работать не будет. Они у вас есть?
http://trader.mtrocket.com - тест совы с 27.04.2015, 17 пар

22 Апрель 2016, 11:09:10
Ответ #6

Trading-Go

  • Администратор
  • Ветеран

  • Оффлайн
  • *****

  • 2 011
  • Репутация:
    493
  • Пол
    Мужской

    Мужской
Уважаемые друзья, мы переехали на новый более интересный и многофункциональный форум!
Теперь для пользователей появилось больше возможностей и удобств.
Если Ваша просьба не выполнена или вопрос остался без ответа, то это только потому что все усилия были направлены на настройку нового форума.
Пожалуйста, если Ваш вопрос, просьба актуальны, продублируйте его на новой форуме!
С удовольствием приглашаем Вас на новый более технологичный форум!

Перейти
Данный форум доступен только для чтения!
Регистрация, новые записи запрещены!
Все учетные данные перенесены на новый форум, повторная регистрация не требуется!
ВАЖНО НОВОСТЬ О ПЕРЕЕЗДЕ ФОРУМА
Своей помощью я стараюсь не давать готовое, я стараюсь натолкнуть Вас на понимание и на правильные мысли, что бы Вы сами решили свою задачу и получили знания... Как то так...