数组问题(二维)
Results 1 to 4 of 4

Thread: 数组问题(二维)

  1. #1
    嗨,

    我有一个有6列和50行的阵列。
    这些列是:

    trade_arr [X] [0] = OrderTicket();
    trade_arr [X] [1] = OrderStopLoss();
    trade_arr [X] [2] = OrderTakeProfit();
    trade_arr [X] [3] = OrderSymbol();
    trade_arr [X] [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(POS,SELECT_BY_POS)==真)
    {
    int trade_ticket = OrderTicket();

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

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

    如果(trade_ticket == trade_arr_int)
    {
    警报(贸易存在);
    trade_exist = TRUE;
    }

    if(trade_arr [c] [0] == 0)
    {int next_nr = c;
    Alert(next c,next_nr);
    }

    }

    如果(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 = FALSE;

    }
    }

    返回(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(POS,SELECT_BY_POS)==真)
    {
    int trade_ticket = OrderTicket();

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

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

    如果(trade_ticket == trade_arr_int)
    {
    警报(贸易存在);
    trade_exist = TRUE;
    }

    if(trade_arr [c] [0] == 0)
    {int next_nr = c;
    Alert(next c,next_nr);
    }

    }

    如果(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 = FALSE;

    }
    }

    返回(0);
    }
    // ----------------------------------------------- -------------------

  2. #2
    嘿swen ....因为它的编码,开始()和工作之间没有任何东西....所以是的,它会做每个蜱的工作....一个常用的方法是数一些东西,在你的情况在这里你可以计算总订单.....如果自上次滴答以来计数已经发生变化, - 现在开始工作......否则 - 现在什么都不做...../--- - 当EA开始时,所有未平仓的交易都应该写入数组中,这让我好奇......所有这些信息都已经存储/写入了......有没有什么特别的事情可以用于数组....我可以从你的代码中不知道...... h

  3. #3
    我用start()声明了数组,现在它可以像我需要的那样工作...... Swen

  4. #4
    我只是检查票证,如果它不同于以前的值发出警报。

發布權限

  • 您不可發布新主題
  • 您不可回复
  • 您不可發布附件
  • 您不可編輯您的帖子
  •  
  • BB代碼是打開的
  • 表情符號是打開的
  • [IMG]代碼是打開的
  • [視頻]代碼是打開的
  • HTML代碼是關閉的
forex-pedia網站使用cookie 文字跟蹤
forex-pedia.com網站使用cookie 文字跟蹤,某些設定已經固定。您可以點擊此處閱讀我們的Cookie使用說明。 請點擊右鍵接受我們的cookies。如果您選擇繼續使用forex-pedia.com網站,我們將認為您接受我們的cookies。