loop:將Array傳遞給函數問題?
Results 1 to 7 of 7

Thread: loop:將Array傳遞給函數問題?

  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 =“顏色:#0000BB“> HelperArray </span> <span style =”color:#007700“>#91; </span> <span style =”color:#0000BB“> 1 </span> <span style =”顏色:#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,MetaQuotesSoftwareCorp.”
    #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並將其保存到Scripts文件夾,單擊Experts選項卡,然後執行腳本。 [PHP]/ -------------------------------------------- ---------------------- /| close.mq4 |/|版權所有©2004,MetaQuotes Software Corp. |/| http://www.metaquotes.net/|/ ----------------------------------------------- ------------------- #property copyright版權所有......
    cyber1,非常感謝您抽出寶貴時間。這不是我想要的。我有陣列(ArrayCopy系列,但也有其他)取決於每個TF。

  4. #4

    Quote Originally Posted by ;
    嗨mj,你可以合併那個數組開放價格,但你需要有固定大小的數組來為不同的tf起始索引這樣的東西:PHP代碼:<code> <span style =“color:#000000”> <span style = “顏色:#0000BB”>
    </span> <span style =“color:#FF8000”>/ - copydArOpenPriceM1dArOpenPriceM5todaOpenPrice
    /---#0M1,startedfrom0 * 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 style =“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,startedfrom1 * 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 = “顏色:#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(){Comment(); 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;,Digits),niOpengt; gt; M1 bar#0,DoubleToStr(iOpen(NULL,PERIOD_M1,0),數字),M5 bar#0,DoubleToStr(iOpen(NULL, PERIOD_M5,0),數字));
    https://www.forex-pedia.com/brokers/...iscussion.html

  6. #6
    Quote Originally Posted by ;
    我也是
    ,我嘗試它,是的它調整大小但沒關係,因為這個塊只會復制ARR_OPEN_SIZE
    是的 - 只是好奇,因為我從來沒有通過這樣的數組 - 但總體思路會奏效。我想也可以使用任意偏移 - 只需要通過那些(我已經使用其他數組了。)感謝一般的想法 - 如果沒有其他人有更好的方法 - 我會在真正的indi中試一試。你是個好人。

  7. #7
    我正在考慮其他事情:而不是傳遞數組,例如dArOpenPriceM1 ArrayCopySeries(dArOpenPriceM1,MODE_OPEN,Symbol(),PERIOD_M1);我可以在我的函數中為每個bar執行a:double iOpen(string symbol,int timeframe,int shift)並且只傳遞不同的TimeFrame值

發布權限

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