цикл: передача массива в функцию вопрос?
Results 1 to 7 of 7

Thread: цикл: передача массива в функцию вопрос?

  1. #1
    Привет,

    возможно кто-то знает, как это сделать правильно.

    Я хотел бы перебрать различные интервалы TF и ​​передать различные массивы в мою функцию:

    Примерно так:/Блок в вопросе

    PHP Code: <code><span style=”color: #000000”> <span style=”color: #0000BB”>intinterval</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>1</span><span style=”color: #007700”>;
    </span><span style=”color: #0000BB”>int_PeriodM1</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>10</span><span style=”color: #007700”>;
    </span><span style=”color: #0000BB”>int_PeriodM5</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>50</span><span style=”color: #007700”>;

    </span><span style=”color: #0000BB”>doubledArOpenPriceM1</span><span style=”color: #007700”>#91;#93;;
    </span><span style=”color: #0000BB”>doubledArOpenPriceM5</span><span style=”color: #007700”>#91;#93;;

    </span><span style=”color: #FF8000”>//Somewhere
    </span><span style=”color: #0000BB”>ArrayCopySeries</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>dArOpenPriceM1</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>MODE_OPEN</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>sPairName</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>PERIOD_M1</span><span style=”color: #007700”>);
    </span><span style=”color: #0000BB”>ArrayCopySeries</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>dArOpenPriceM5</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>MODE_OPEN</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>sPairName</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>PERIOD_M5</span><span style=”color: #007700”>);
    =====================



    </span><span style=”color: #FF8000”>//Blockinquestion
    </span><span style=”color: #007700”>if(</span><span style=”color: #0000BB”>interval</span><span style=”color: #007700”>==</span><span style=”color: #0000BB”>PERIOD_M1</span><span style=”color: #007700”>){
    </span><span style=”color: #0000BB”>myFunc</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>_PeriodM1</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>dArOpenPriceM1</span><span style=”color: #007700”>);
    }
    elseif(</span><span style=”color: #0000BB”>interval</span><span style=”color: #007700”>==</span><span style=”color: #0000BB”>PERIOD_M5</span><span style=”color: #007700”>){
    </span><span style=”color: #0000BB”>myFunc</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>_PeriodM5</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>dArOpenPriceM5</span><span style=”color: #007700”>);
    }


    =====================
    </span><span style=”color: #FF8000”>//Helperfunction
    </span><span style=”color: #0000BB”>voidmyFunc</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>int_Period</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>double_dArOpenPrice</span><span style=”color: #007700”>#91;#93;){
    </span><span style=”color: #FF8000”>//Domything
    </span><span style=”color: #007700”>}
    </span><span style=”color: #0000BB”></span> </span> </code> instead of the/Block in question

    Я хотел бы сделать что-то вроде:

    Код PHP: <code> <span style = ”color: # 000000”> <span style = ”color: # 0000BB”> intHelperArray </span> <span style = ”color: # 007700”> # 91; </span > <span style = ”color: # 0000BB”> 2 </span> <span style = ”color: # 007700”> # 93 ;;
    </span> <span style = ”color: # 0000BB” > HelperArray </span> <span style = ”color: # 007700”> # 91; </span> <span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700” > # 93; = </span> <span style = ”color: # 0000BB”> _ PeriodM1 </span> <span style = ”color: # 007700”>;
    </span> <span style = » color: # 0000BB ”> HelperArray </span> <span style =” color: # 007700 ”> # 91; </span> <span style =” color: # 0000BB ”> 1 </span> <span style =» color: # 007700 ”> # 93; = </span> <span style =” color: # 0000BB ”> _ PeriodM5 </span> <span style =” color: # 007700 ”>;

    for (</span> <span style = ”color: # 0000BB”> intx </span> <span style = ”color: # 007700”> = </span> <span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700”>; </span> <span style = »color: # 0000 BB ”> x </span> <span style =” color: # 007700 ”> lt; </span> <span style =” color: # 0000BB ”> 2 </span> <span style =” color: # 007700 ”>; </Span> <span style =” color: # 0000BB ”> x </span> <span style =” color: # 007700 ”> ) {
    </span> <span style = ”Color: # 0000BB”> myFunc </span> <span style = ”color: # 007700”> (</span> <span style = ”color: # 0000BB»> HelperArray </span> <span style = ”color : # 007700 ”> # 91; </span> <span style =” color: # 0000BB ”> x </span> <span style =” color: # 007700 ”> # 93;, </span> <span style = ”Color: # 0000BB”> double_dArOpenPrice </span> <span style = ”color: # 007700”> # 91; # 93;)
    </span> <span style = ”color: # FF8000”>/не знаю, как отправить сюда правильный код
    </span> <span style = ”color: # 007700”>}
    </span> <span style = ”color: # 0000BB»> </span> </span> </code> Я думаю, что кто-то должен был сделать что-то подобное до меня (если это возможно в MT4)
    - и надеюсь, что вы любезны, чтобы уделить пару минут, чтобы поделиться - большое спасибо.

  2. #2
    The following is a script that shows how to loop through each TF and Pair Save it to the Scripts folder, click the Experts tab and then execute the script. PHP Code: <code><span style=”color: #000000”> <span style=”color: #0000BB”></span><span style=”color: #FF8000”>// ------------------------------------------------------------------
    //|close.mq4|
    //|Copyright©2004,MetaQuotesSoftwareCorp.|
    //|http://www.metaquotes.net/|
    // ------------------------------------------------------------------
    #propertycopyright”Copyright©2004,MetaQuotesSof twareCorp.”
    #propertylink”http://www.metaquotes.net/”

    // ------------------------------------------------------------------
    //|script|
    // ------------------------------------------------------------------
    </span><span style=”color: #0000BB”>intstart</span><span style=”color: #007700”>(){

    </span><span style=”color: #0000BB”>intTimeFrame</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>TF</span><span style=”color: #007700”>;
    </span><span style=”color: #0000BB”>stringdSymbol</span><span style=”color: #007700”>;

    </span><span style=”color: #FF8000”>//currencies
    </span><span style=”color: #0000BB”>stringCurrencies</span><span style=”color: #007700”>#91;#93;={</span><span style=”color: #DD0000”>”EURUSD”</span><span style=”color: #007700”>,</span><span style=”color: #DD0000”>”GBPUSD”</span><span style=”color: #007700”>,</span><span style=”color: #DD0000”>”AUDUSD”</span><span style=”color: #007700”>};
    </span><span style=”color: #0000BB”>intcount</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>ArraySize</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>Currencies</span><span style=”color: #007700”>);

    </span><span style=”color: #FF8000”>//TimeFrames
    </span><span style=”color: #0000BB”>intTimeFrames</span><span style=”color: #007700”>#91;#93;={</span><span style=”color: #0000BB”>30</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>60</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>240</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>1440</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>10080</span><span style=”color: #007700”>};
    </span><span style=”color: #0000BB”>intcounttf</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>ArraySize</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>TimeFrames</span><span style=”color: #007700”>);

    for(</span><span style=”color: #0000BB”>intx</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>0</span><span style=”color: #007700”>;</span><span style=”color: #0000BB”>x</span><span style=”color: #007700”>lt;</span><span style=”color: #0000BB”>count</span><span style=”color: #007700”>;</span><span style=”color: #0000BB”>x</span><span style=”color: #007700”> ){
    </span><span style=”color: #0000BB”>dSymbol</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>Currencies</span><span style=”color: #007700”>#91;</span><span style=”color: #0000BB”>x</span><span style=”color: #007700”>#93;;

    for(</span><span style=”color: #0000BB”>intxe</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>0</span><span style=”color: #007700”>;</span><span style=”color: #0000BB”>xe</span><span style=”color: #007700”>lt;</span><span style=”color: #0000BB”>counttf</span><span style=”color: #007700”>;</span><span style=”color: #0000BB”>xe</span><span style=”color: #007700”> ){
    </span><span style=”color: #0000BB”>TF</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>TimeFrames</span><span style=”color: #007700”>#91;</span><span style=”color: #0000BB”>xe</span><span style=”color: #007700”>#93;;
    Print(</span><span style=”color: #0000BB”>dSymbol</span><span style=”color: #007700”> </span><span style=”color: #DD0000”>”-”</span><span style=”color: #007700”> </span><span style=”color: #0000BB”>TF</span><span style=”color: #007700”>);


    }
    }
    return(</span><span style=”color: #0000BB”>0</span><span style=”color: #007700”>);
    }
    </span><span style=”color: #FF8000”>// ------------------------------------------------------------------
    </span><span style=”color: #0000BB”></span> </span> </code>

  3. #3

    Quote Originally Posted by ;
    Ниже приведен сценарий, который показывает, как циклически проходить через каждый TF и ​​пару. Сохраните его в папке «Сценарии», перейдите на вкладку «Эксперты» и затем выполните сценарий. [PHP]/ -------------------------------------------- ---------------------- /| close.mq4 |/| Copyright © 2004, MetaQuotes Software Corp./| http://www.metaquotes.net/|/ ----------------------------------------------- ------------------- # собственность авторское право Авторское право ...
    cyber1, Большое спасибо, что нашли время. Это не совсем то, что я искал. У меня есть массивы (серии ArrayCopy, но также и другие) в зависимости от каждого TF.

  4. #4

    Quote Originally Posted by ;
    привет mj, вы можете объединить цену открытия этого массива, но вам нужно иметь массив фиксированного размера для получения другого начального индекса tf примерно так: код PHP: <code> <span style = ”color: # 000000”> <span style = ”Color: # 0000BB”>
    </span> <span style = ”color: # FF8000”>/- copydArOpenPriceM1dArOpenPriceM5todaOpenPrice
    /--- # 0M1, начиная с 0 * ARR_OPEN_SIZE
    <span> <span style = ”color: # 0000BB”> ArrayCopy </span> <span style = ”color: # 007700”> (</span> <span style = ”color: # 0000BB”> daOpenPrice </span > <span style = ”color: # 007700”>, </span> <span style = ”color: # 0000BB”> dArOpenPriceM1 </span> <span style = ”color: # 007700”>, </span> < span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700”> * </span> <span style = ”color: # 0000BB”> ARR_OPEN_SIZE </span> <стиль span = ”Color: # 007700”>, </span> <span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700”>, </span> <span style = » цвет: # 0000BB ”> ARR_OPEN_SIZE </span> <span style =” color: # 007700 ”>);
    </span> <span style = ”color: # FF8000”>/--- # 1M5, начиная с 1 * ARR_OPEN_SIZE
    </span> <span style = ”color: # 0000BB”> ArrayCopy </span> <span style = ”color: # 007700”> (</span> <span style = ”color: # 0000BB”> daOpenPrice </span> <span style = ”color: # 007700”>, </span> <span style = ”color: # 0000BB”> dArOpenPriceM5 </span> <span style = ”color: # 007700”>, </span> <span style = ”color: # 0000BB”> 1 </span> <span style = ”color: # 007700”> * </span> <span style = ”color: # 0000BB”> ARR_OPEN_SIZE </span> <span style = ”color: # 007700”>, </span> <span style = ”Color: # 0000BB”> 0 </span> <span style = ”color: # 007700”>, </span> <span style = ”color: # 0000BB”> ARR_OPEN_SIZE </span> <span style = ”color : # 007700 ”>);
    </span> <span style =” color: # FF8000 ”>/lt; - copydArOpenPriceM1dArOpenPriceM5todaOpenPrice



    <span> <span style = ”color: # 007700”>}
    </span> <span style = ”color: # 0000BB”> </span> </span> </code>
    Бандунг, большое спасибо - глядя на это, кажется, один из возможных вариантов - раньше не думал об этом. Так что это полезный момент. Я немного поиграюсь с этим. В случае, если у кого-то еще есть другой подход, где я могу избежать дополнительной части копирования (часть выше) (для 9 TF есть 36 ArrayCopySeries), я бы тоже подстроил ваш ввод.

  5. #5
    1 приложение (я)
    Quote Originally Posted by ;
    Просто то, что я заметил: я никогда не передавал массив фиксированного размера в ArrayCopySeries, поэтому я хотел проверить это. Похоже, в любом случае получить ReSized, так что это не имеет никакого эффекта. Изображение ниже: [php] #define ARR_OPEN_SIZE 2000 datetime dtArTimeM1 []; datetime dtArTimeM5 []; datetime dtArTimeM1_limit [ARR_OPEN_SIZE]; datetime dtArTimeM5_limit [ARR_OPEN_SIZE]; int start () {Комментарий (); int beforedtArTimeM1Size = ArraySize (dtArTimeM1); int beforedtdtArTimeM5Size ...
    так и я, я попробую и да, он изменил размер, но это не имеет значения, потому что этот блок будет копировать столько же, сколько и вставленный код ARR_OPEN_SIZE/- скопировать dArOpenPriceM1 dArOpenPriceM5 в daOpenPrice/--- # 0 M1, начиная с 0 * ARR_OPEN_SIZE ArrayCopy (daOpenPrice, dArOpenPriceM1, 0 * ARR_OPEN_SIZE, 0, # 91; b # 93; ARR_OPEN_SIZE # 91;b # 93;/--- # 1 M5, началось с 1 * ARR_OPEN_SIZE ArrayCopy (daOpenPrice, dArOpenPriceM5, 1 * ARR_OPEN_SIZE, 0, # 91; b # 93; ARR_OPEN_SIZE # 91;b # 93;/lt; - копировать dArOpenPriceM1 dArOpenPriceM5 в комментарий daOpenPrice (массив daOpenPricegt; gt; M1 @ # 91; 0 # 93;, DoubleToStr (daOpenPrice # 91; 0 # 93;; цифры), M5 @ # 91; 2000 # 93 ; DoubleToStr (daOpenPrice # 91; 2000 # 93 ;, Цифры), niOpengt; gt; M1 bar # 0, DoubleToStr (iOpen (NULL, PERIOD_M1, 0), Цифры), M5 bar # 0, DoubleToStr (iOpen (NULL, PERIOD_M5, 0), цифры));
    https://www.forex-russian.com/broker...iscussion.html

  6. #6
    Есть еще кое-что, о чем я думаю: вместо прохождения массива, например dArOpenPriceM1 ArrayCopySeries (dArOpenPriceM1, MODE_OPEN, Symbol (), PERIOD_M1); Я мог бы сделать в своей функции для каждого бара a: double iOpen (символ строки, int timeframe, int shift) и только передавать различные значения TimeFrame

  7. #7
    Quote Originally Posted by ;
    я тоже
    , я пытаюсь, и да, он изменил размер, но это не имеет значения, потому что этот блок будет копировать столько, сколько ARR_OPEN_SIZE
    Да - просто любопытно, так как я никогда не пропускал такие массивы - но общая идея сработает. Я предполагаю также с произвольными смещениями - просто нужно пропустить их (я делаю это уже с другими массивами). Спасибо за общую идею - если у кого-то еще нет некоторых даже более подходящих подходов - я попробую это в реальной инди Очень мило с вашей стороны.

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

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