Автор Тема: Обучение языку MQL4 под MetaTrader 4  (Прочитано 562424 раз)

Оффлайн Alexandrkas

  • Постоялец
  • ***
  • Сообщений: 127
  • Вес голоса: 764736
  • Alexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форума
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 373
Обучение языку MQL4 под MetaTrader 4
« Ответ #3660 : Январь 11, 2017, 06:00:04 am »
  • 0
Подскажите по 6 уроку, написание скриптов. С первым заданием из ДЗ не могу разобраться. Нужно написать скрипт, который будет выставлять защитные стоп ордера к уже имеющимся. Вроде по логике все правильно в коде, но почему то на графике ни чего не происходит. Файл скрипта прилагаю.

Trade Like A Pro

Обучение языку MQL4 под MetaTrader 4
« Ответ #3660 : Январь 11, 2017, 06:00:04 am »


Оффлайн xbms

  • Модератор
  • Финансовый махинатор
  • *****
  • Сообщений: 621
  • Вес голоса: 2970977
  • xbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форумаxbms Ключевая фигура форума
    • Share Post
  • Награды Слежу за порядком на форуме Программист MQL
    • Просмотр профиля
    • Награды
  • Опыт торговли: > 5 лет
  • Рейтинг: 513
Обучение языку MQL4 под MetaTrader 4
« Ответ #3661 : Январь 11, 2017, 11:31:50 am »
  • 2

Приветствую!

1-я ошибка тут:
for(int i=OrdersTotal()-1; i<=0; i--) // запускаем цикл перебора всех ордеров

Правильно будет:
for(int i=OrdersTotal()-1; i>=0; i--)



Сообщение понравилось: Alexandrkas, vitek01

Оффлайн Alexandrkas

  • Постоялец
  • ***
  • Сообщений: 127
  • Вес голоса: 764736
  • Alexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форумаAlexandrkas Ключевая фигура форума
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 373
Обучение языку MQL4 под MetaTrader 4
« Ответ #3662 : Январь 11, 2017, 01:08:43 pm »
  • 0
for(int i=OrdersTotal()-1; i<=0; i--) // запускаем цикл перебора всех ордеров

Правильно будет:
for(int i=OrdersTotal()-1; i>=0; i--)
Спасибо. Теперь все работает. Я почему-то рассуждал, что цикл будет продолжаться пока i не станет меньше либо равно нулю.

Оффлайн Silentspec

  • Модератор
  • Финансовый махинатор
  • *****
  • Сообщений: 1765
  • Вес голоса: 21474834
  • Silentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форумаSilentspec Ключевая фигура форума
    • Share Post
  • Награды овер 1к сообщений на форуме Публикация статей и переводов на форуме Слежу за порядком на форуме Управляющий ПАММ-счетом Торговля советниками Программист MQL
    • Просмотр профиля
    • Награды
  • Опыт торговли: > 5 лет
  • Рейтинг: 8352
Обучение языку MQL4 под MetaTrader 4
« Ответ #3663 : Январь 11, 2017, 01:35:29 pm »
  • 0
Странно, вроде все нормально работать должно :d
« Последнее редактирование: Январь 11, 2017, 01:41:41 pm от Silentspec »

Оффлайн scherbakovss

  • Интересующийся
  • **
  • Сообщений: 75
  • Вес голоса: 0
  • scherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собой
  • Финансовая свобода - это когда Вы создали что то,
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 11
Обучение языку MQL4 под MetaTrader 4
« Ответ #3664 : Январь 11, 2017, 03:09:07 pm »
  • 0
Подскажите,чего все ордера у файл не пишутся
 http://joxi.ru/V2VgoO6TnB4bAv
Пробовал код с
   sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
вынести за Ордертайп,та же фигня.

void OnTick()
  {
  //--- Открываем файл
   int h=FileOpen("log.txt",FILE_READ|FILE_WRITE|FILE_TXT);
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
   
            if(OrderType()==OP_BUY)
              {
               type=0;
               lot=OrderLots();
               sl=OrderStopLoss();
               tp=OrderTakeProfit();
               
                sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
              }
                                           
         if(OrderType()==OP_SELL)
         {
             type=1;
              lot=OrderLots();
               sl=OrderStopLoss();
             tp=OrderTakeProfit();
             
              sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
            }
             if(OrderType()==OP_BUYLIMIT)
          {
            type=2;
              lot=OrderLots();
           sl=OrderStopLoss();
             tp=OrderTakeProfit();
             
              sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
            }
            if(OrderType()==OP_SELLLIMIT)
              {
            type=3;
             lot=OrderLots();
             sl=OrderStopLoss();
            tp=OrderTakeProfit();
           
             sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
             }
            if(OrderType()==OP_BUYSTOP)
              {
                type=4;
               lot=OrderLots();
               sl=OrderStopLoss();
               tp=OrderTakeProfit();
               
                sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
               }
              if(OrderType()==OP_SELLSTOP)
               {
                type=5;
                lot=OrderLots();
                sl=OrderStopLoss();
                tp=OrderTakeProfit();
               
                 sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
              }
             
               RefreshRates();                             
       
         
        }//OrderSelect
        FileClose(h);
     }//

Оффлайн Partorius

  • Новичок
  • *
  • Сообщений: 14
  • Вес голоса: 0
  • Partorius Новенький
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 5
Обучение языку MQL4 под MetaTrader 4
« Ответ #3665 : Январь 12, 2017, 01:52:21 pm »
  • 0
Разбираюсь с советником, при компиляции пишет ошибку 'AutoTimeSettings should be (fal…' - parameter passed as reference, variable expected делает ссылку на эту строку

if (AutoTimeSettings) {
MessageBoxA(0, "AutoTimeSettings should be (false) at the test mode. Using ManualGMT_Offset", "Error", 0);

в чем может быть дело?

Оффлайн afert

  • Новичок
  • *
  • Сообщений: 14
  • Вес голоса: 0
  • afert Новенький
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: < 1 года
  • Рейтинг: 1
Обучение языку MQL4 под MetaTrader 4
« Ответ #3666 : Январь 12, 2017, 02:32:44 pm »
  • 0
Уважаемые программисты! Возможно глупый вопрос, но не могу сообразить.  Собираю советник по индикатору  и двум таймфреймам Н1 и М15, на Н1 есть сигнал и пока он держится на М15 может быть несколько потенциальных входов. Подскажите как прописать условие чтобы брался только первый или один?

Оффлайн scherbakovss

  • Интересующийся
  • **
  • Сообщений: 75
  • Вес голоса: 0
  • scherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собой
  • Финансовая свобода - это когда Вы создали что то,
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 11
Обучение языку MQL4 под MetaTrader 4
« Ответ #3667 : Январь 12, 2017, 04:14:41 pm »
  • 0
Подскажите на примере как правильно все открытые сделки в мт4 записать у файл и прочитать их,бо реально,что не делал пишет только последний ордер и все.А если ордер закрылся то запись о нем не стираеться из файла.

//Запись
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  //--- Открываем файл
   int h=FileOpen("log.txt",FILE_READ|FILE_WRITE|FILE_TXT);
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
   
            if(OrderType()==OP_BUY)
              {
               type=0;
               lot=OrderLots();
               sl=OrderStopLoss();
               tp=OrderTakeProfit();
               
                sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
              }
                                           
         if(OrderType()==OP_SELL)
         {
             type=1;
              lot=OrderLots();
               sl=OrderStopLoss();
             tp=OrderTakeProfit();
             
              sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
            }
             if(OrderType()==OP_BUYLIMIT)
          {
            type=2;
              lot=OrderLots();
           sl=OrderStopLoss();
             tp=OrderTakeProfit();
             
              sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
            }
            if(OrderType()==OP_SELLLIMIT)
              {
            type=3;
             lot=OrderLots();
             sl=OrderStopLoss();
            tp=OrderTakeProfit();
           
             sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
             }
            if(OrderType()==OP_BUYSTOP)
              {
                type=4;
               lot=OrderLots();
               sl=OrderStopLoss();
               tp=OrderTakeProfit();
               
                sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
               }
              if(OrderType()==OP_SELLSTOP)
               {
                type=5;
                lot=OrderLots();
                sl=OrderStopLoss();
                tp=OrderTakeProfit();
               
                 sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
               s=OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp;
                FileWrite(h,s);
              }
             
               RefreshRates();                             
       
         
        }//OrderSelect
        FileClose(h);
     }//

Оффлайн vitek01

  • Постоялец
  • ***
  • Сообщений: 112
  • Вес голоса: 134277
  • vitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форума
    • Share Post
  • Награды Торгую без лишнего на графике
    • Просмотр профиля
    • Награды
  • Опыт торговли: Нет
  • Рейтинг: 53
Обучение языку MQL4 под MetaTrader 4
« Ответ #3668 : Январь 13, 2017, 11:10:51 am »
  • 0

навскидку думаю что ты просто перезаписываешь переменные и остается один последний ордер.

Оффлайн scherbakovss

  • Интересующийся
  • **
  • Сообщений: 75
  • Вес голоса: 0
  • scherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собой
  • Финансовая свобода - это когда Вы создали что то,
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 11
Обучение языку MQL4 под MetaTrader 4
« Ответ #3669 : Январь 13, 2017, 11:18:22 am »
  • 0
А как правильно?

Оффлайн vitek01

  • Постоялец
  • ***
  • Сообщений: 112
  • Вес голоса: 134277
  • vitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форумаvitek01 Ключевая фигура форума
    • Share Post
  • Награды Торгую без лишнего на графике
    • Просмотр профиля
    • Награды
  • Опыт торговли: Нет
  • Рейтинг: 53
Обучение языку MQL4 под MetaTrader 4
« Ответ #3670 : Январь 13, 2017, 12:05:56 pm »
  • 0
навскидку думаю что ты просто перезаписываешь переменные и остается один последний ордер.А как правильно?
[/quote]

Может просто каждый ордер отдельно записывать в отдельный файл, я же не знаю для чего и каквы  используете эти данные. Толковые ребята найдутся которые распишут как нужно.

Оффлайн Viktor M.

  • Новичок
  • *
  • Сообщений: 9
  • Вес голоса: 0
  • Viktor M. Новенький
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: Нет
  • Рейтинг: 1
Обучение языку MQL4 под MetaTrader 4
« Ответ #3671 : Январь 13, 2017, 03:34:48 pm »
  • 0
Здравствуйте, уважаемый Сергей Ака! В MQL eсть функция GetTickCount, которая возвращает число msec, прошедших с момента запуска системы. Скажите пожалуйста, возможно-ли с помощью этой функции определить время между тиками т.е. GetTickCount_2 - GetTickCount_1 = t(msec), и, как это правильно прописать в коде MQL. И ещё, пожалуйста, как в условном операторе прописать направление движения цены (вверх или вниз). Спасибо!

Оффлайн scherbakovss

  • Интересующийся
  • **
  • Сообщений: 75
  • Вес голоса: 0
  • scherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собой
  • Финансовая свобода - это когда Вы создали что то,
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 11
Обучение языку MQL4 под MetaTrader 4
« Ответ #3672 : Январь 13, 2017, 03:37:04 pm »
  • 0
Жаль,что в моем вопросе отсутствую специалисты способные помочь по записи и чтению всех типов ордеров в файл с обновлением если ордер закрылся.

Оффлайн SilverKZ

  • Постоялец
  • ***
  • Сообщений: 118
  • Вес голоса: 829499
  • SilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форумаSilverKZ Ключевая фигура форума
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: < 1 года
  • Рейтинг: 165
Обучение языку MQL4 под MetaTrader 4
« Ответ #3673 : Январь 13, 2017, 04:13:04 pm »
  • 0
FileWriteString(h, s + "\r\n") вам в помощь.

Но лучше так
s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
FileWrite(h,s);
...
}//OrderSelect
FileWrite(h,s);
FileClose(h);
« Последнее редактирование: Январь 13, 2017, 04:37:03 pm от SilverKZ »

Оффлайн scherbakovss

  • Интересующийся
  • **
  • Сообщений: 75
  • Вес голоса: 0
  • scherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собойscherbakovss Ему нужно поработать над собой
  • Финансовая свобода - это когда Вы создали что то,
    • Share Post
    • Просмотр профиля
    • Награды
  • Опыт торговли: 1-3 года
  • Рейтинг: 11
Обучение языку MQL4 под MetaTrader 4
« Ответ #3674 : Январь 13, 2017, 04:45:18 pm »
  • 0
Куда конкретно записать  FileWriteString(h, s + "\r\n")


void OnTick()
  {
  //--- Открываем файл
   int h=FileOpen("log.txt",FILE_READ|FILE_WRITE|FILE_TXT);
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
   
            if(OrderType()==OP_BUY)
              {
               type=0;
               lot=OrderLots();
               sl=OrderStopLoss();
               tp=OrderTakeProfit();
               
                sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
             s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
                FileWriteString(h,s);
              }
                                           
         if(OrderType()==OP_SELL)
         {
             type=1;
              lot=OrderLots();
               sl=OrderStopLoss();
             tp=OrderTakeProfit();
             
              sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
             s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
                FileWriteString(h,s);
            }
             if(OrderType()==OP_BUYLIMIT)
          {
            type=2;
              lot=OrderLots();
           sl=OrderStopLoss();
             tp=OrderTakeProfit();
             
              sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
              s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
                FileWriteString(h,s);
            }
            if(OrderType()==OP_SELLLIMIT)
              {
            type=3;
             lot=OrderLots();
             sl=OrderStopLoss();
            tp=OrderTakeProfit();
           
             sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
             s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
                FileWriteString(h,s);
             }
            if(OrderType()==OP_BUYSTOP)
              {
                type=4;
               lot=OrderLots();
               sl=OrderStopLoss();
               tp=OrderTakeProfit();
               
                sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
              s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
               FileWriteString(h,s);
               }
              if(OrderType()==OP_SELLSTOP)
               {
                type=5;
                lot=OrderLots();
                sl=OrderStopLoss();
                tp=OrderTakeProfit();
               
                 sl=NormalizeDouble(sl,Digits);
               tp=NormalizeDouble(tp,Digits);
             s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
                FileWriteString(h,s);
              }
             
               RefreshRates();                             
       
         
        }//OrderSelect
        FileClose(h);
     }//

Добавлено: Январь 13, 2017, 05:07:47 pm
FileWrite(h,s);FileWriteString(h, s + "\r\n") вам в помощь.

Но лучше так
s += OrderSymbol()+" "+(string)type+" "+(string)lot+" "+(string)sl+" "+(string)tp + "\r\n";
FileWrite(h,s);
...
}//OrderSelect
FileWrite(h,s);
FileClose(h);
  У меня в файл с новой строки пишеться,но вместо трех сделок,пишеться раз в 100 больше.
http://joxi.ru/n2YVoxLUKdkoA6
вот исходник
http://joxi.ru/krD0oMginOGWrp
« Последнее редактирование: Январь 13, 2017, 05:07:47 pm от scherbakovss »


Share via twitter

xx
Обучение языку MQL5 под MetaTrader 5

Автор pavlus777 Уголок Программиста

108 Ответов
14380 Просмотров
Последний ответ Сентябрь 05, 2017, 07:47:32 am
от Pioner_rus
question
Элементы кода MQL4

Автор garanyan1985 Уголок Программиста

11 Ответов
5106 Просмотров
Последний ответ Октябрь 22, 2011, 08:37:03 am
от jackpot
question
OrderTicket() из MQL4 в MQL5

Автор Dok11 Уголок Программиста

3 Ответов
3390 Просмотров
Последний ответ Ноябрь 03, 2012, 03:30:43 pm
от Ugrael
xx
Видео уроки по MQL4

Автор mogilny Уголок Программиста

19 Ответов
8724 Просмотров
Последний ответ Июль 24, 2012, 08:58:22 pm
от poloda1
xx
Доступ к API из Myfxbook с использованием EA, запрограммированный в MQL4

Автор trumex Уголок Программиста

5 Ответов
636 Просмотров
Последний ответ Октябрь 05, 2017, 10:59:41 am
от dexman
 

Форекс блог

Стратегии Индикаторы Советники Аналитика

Мы в соцсетях

Группа Вконтакте Facebook Twitter Instagram

Ссылки

Рекомендуемый брокер Инвестиции Форекс Вики Бинарные Опционы
InstaForex
instaforex C forex4you-C exness D ????_????? Tickmill_small AMarkets FortFS200 forex4you-C