проблема с массивом (двумерная)
Results 1 to 4 of 4

Thread: проблема с массивом (двумерная)

  1. #1
    Здравствуй,

    У меня есть массив из 6 столбцов и 50 строк.
    Столбцы:

    trade_arr [х] [0] = OrderTicket ();
    trade_arr [х] [1] = OrderStopLoss ();
    trade_arr [х] [2] = OrderTakeProfit ();
    trade_arr [х] [3] = OrderSymbol ();
    trade_arr [х] [4] = OrderOpenPrice ();

    Теперь я хочу сделать это:
    Когда EA запускается, все открытые сделки должны быть записаны в массив. Каждый тик проверяется, если есть новые открытые сделки. Если да, они должны быть добавлены в массив.
    Проблема: EA не работает. Предупреждающая новая торговля приходит при каждом тике
    для каждой открытой позиции.
    Я определил строку trade_arr [50] [6]; как глобальная переменная, но кажется, что массив удаляется после каждого тика.

    Было бы неплохо, если бы кто-то там проверил это ...

    Благодаря,
    Свен


    Код:

    Quote Originally Posted by ;

    string trade_arr [50] [6];

    // ----------------------------------------------- -------------------
    //| экспертная функция инициализации |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //----


    //----
    Возвращение (0);
    }
    // ----------------------------------------------- -------------------
    //| функция запуска эксперта |
    // ----------------------------------------------- -------------------
    int start ()
    {

    int trade_nr;
    int total = OrdersTotal ();
    bool trade_exist = false;

    for (int pos = 0; poslt; total; pos )
    {
    если (OrderSelect (позы, SELECT_BY_POS) == TRUE)
    {
    int trade_ticket = OrderTicket ();

    for (int c = 0; clt; = 49; c )
    {

    int trade_arr_int = StrToInteger (trade_arr [c] [0]);

    if (trade_ticket == trade_arr_int)
    {
    Предупреждение (торговля существует);
    trade_exist = TRUE;
    }

    if (trade_arr [c] [0] == 0)
    {int next_nr = c;
    Предупреждение (next c, next_nr);
    }

    }

    if (trade_exist = false)
    {

    Предупреждение (Новая торговля);

    trade_arr [next_nr] [0] = OrderTicket ();
    trade_arr [next_nr] [1] = OrderStopLoss ();
    trade_arr [next_nr] [2] = OrderTakeProfit ();
    trade_arr [next_nr] [3] = OrderSymbol ();
    trade_arr [next_nr] [4] = OrderOpenPrice ();
    }

    trade_exist = ложь;

    }
    }

    Возвращение (0);
    }
    // ----------------------------------------------- -------------------
    Quote Originally Posted by ;

    string trade_arr [50] [6];

    // ----------------------------------------------- -------------------
    //| экспертная функция инициализации |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //----


    //----
    Возвращение (0);
    }
    // ----------------------------------------------- -------------------
    //| функция запуска эксперта |
    // ----------------------------------------------- -------------------
    int start ()
    {

    int trade_nr;
    int total = OrdersTotal ();
    bool trade_exist = false;

    for (int pos = 0; poslt; total; pos )
    {
    если (OrderSelect (позы, SELECT_BY_POS) == TRUE)
    {
    int trade_ticket = OrderTicket ();

    for (int c = 0; clt; = 49; c )
    {

    int trade_arr_int = StrToInteger (trade_arr [c] [0]);

    if (trade_ticket == trade_arr_int)
    {
    Предупреждение (торговля существует);
    trade_exist = TRUE;
    }

    if (trade_arr [c] [0] == 0)
    {int next_nr = c;
    Предупреждение (next c, next_nr);
    }

    }

    if (trade_exist = false)
    {

    Предупреждение (Новая торговля);

    trade_arr [next_nr] [0] = OrderTicket ();
    trade_arr [next_nr] [1] = OrderStopLoss ();
    trade_arr [next_nr] [2] = OrderTakeProfit ();
    trade_arr [next_nr] [3] = OrderSymbol ();
    trade_arr [next_nr] [4] = OrderOpenPrice ();
    }

    trade_exist = ложь;

    }
    }

    Возвращение (0);
    }
    // ----------------------------------------------- -------------------

  2. #2
    эй swen .... как он закодирован, между start () и работой нет ничего ... так что да, он будет делать работу над каждым тиком .... общий метод - считать что-то, в вашем случае здесь вы можете подсчитать общие заказы ..... если счет изменился с последнего тика, - Теперь сделайте работу ...... else - Теперь ничего не делайте ...../--- - Когда EA запускается, все открытые сделки должны быть записаны в Array, мне это любопытно .... вся эта информация хранитсянаписана уже ..... есть ли что-то особенное, что вы делаете с массивом .... я могу Не скажешь из своего кода .... ч

  3. #3
    Я объявил массив с start (), и теперь он работает, как будто мне это нужно ... Swen

  4. #4
    Я бы просто проверить билет, если его отличие от предыдущего значения выдает предупреждение.

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.