Results 1 to 8 of 8

Thread: Mt4:多個陣列的所有可能組合

  1. #1


    只是一個問題:我編寫的東西有點像策略測試程序優化模式。

    我想要優化的每個變量都是由簡化定義的:

    - Variable.Name:支持此刻類型:整數,雙打和布爾
    - Special.Value:可以是NONE(註釋使用)或任何值:例如-1不符合Step
    - Start.Value:一直使用
    - End.Value:經常使用
    - 步驟:可以是無(注意使用例如Bools僅使用開始/結束值)或任何步驟將先前使用的值增加到結束。達到值


    1.example:
    -Variable.Name1:SpreadPips
    - Special.Value:NONE
    - Start.Value:0.0
    - End.Value:15.0
    - 步驟:1.0

    -Variable.Name2:MAPeriod
    - Special.Value:NONE
    - Start.Value:10
    - 結束。價值:50
    - 步驟:10

    -Variable.Name3:Usefilter
    - Special.Value:NONE
    - Start.Value:false
    - End.Value:是的
    - 步驟:無


    2.example:
    -Variable.Name1:SpreadPips
    - Special.Value:NONE
    - Start.Value:0.0
    - End.Value:15.0
    - 步驟:1.0

    -Variable.Name2:StochPeriod
    - Special.Value:NONE
    - Start.Value:10
    - 結束。價值:50
    - 步驟:10

    -Variable.Name3:StochSlowing
    - Special.Value:NONE
    - Start.Value:1
    - End.Value:3
    - 步驟:1

    -Variable.Name4:StochType
    - Special.Value:NONE
    - Start.Value:1
    - 結束。價值:2
    - 步驟:無

    -Variable.Name5:Usefilter
    - Special.Value:NONE
    - Start.Value:false
    - End.Value:是的
    - 步驟:無

    -Variable.Name6:LimitMaxSimultaneusTo
    - Special.Value:-1(不限)
    - Start.Value:1
    - 結束。價值:50
    - 步驟:1



    基本上我想把所有可能的組合放到1個數組中:
    使用2.example:
    - 第一組合:6值數組索引:0-5
    - 下一個組合:6值數組索引:6-11
    etc..ect


    如何最好地做任何有用的想法是受歡迎的。

    乾杯

    阿提

  2. #2

    Quote Originally Posted by ;
    嗨,只是一個問題:我編寫的東西有點像策略測試程序優化模式。我想要優化的每個變量都是由簡化定義的: - Variable.Name:此刻支持類型:整數,雙精度和Bools - Special.Value:可以是NONE(註釋使用)或任何值:例如-1不適合Step - Start.Value:始終使用 - End.Value:始終使用 - 步驟:可以是NONE(註釋使用例如Bools僅使用開始/結束值)或任何步驟來增加先前使用的值直到end.Value達到1.example:-Variable.Name1:SpreadPips ...
    除非您將所有數據設置為相同的類型,即:雙數字,否則無法按照您想要的方式進行單個數組,您根本無法使用混合數據類型。一旦你這樣做並不困難,要么使用X維數組,要么使用單個維度,並使用手動偏移指針指向每個記錄的開頭。老實說,如果你不知道這一點,你將很難為我編寫類似於策略測試器優化模式的東西

  3. #3
    謝謝,它不能像你想要的那樣完成一個單獨的數組,除非你使所有的數據都是相同的類型,即:一個雙數,你根本就不能有混合數據類型。我知道這一點 - 所以沒問題。一旦你這樣做並不困難,要么使用X維數組,要么使用單個維度,並使用手動偏移指針指向每個記錄的開頭。我不能使用X維數組,因為它們僅限於4維。所以我打算使用單個數組:基本上偏移量偏移量總是要完全優化配置變量的數量但是如果你不知道這樣你就會很難編寫類似於策略的東西測試器優化模式不要以為我會遇到一個重大問題,因為我差點完成:它是一個更重要的事情的一部分我的主要問題是:產生所有可能組合的最佳方法是什麼:在變量數量是用戶的情況下定義了主循環邏輯Cheers Ati

  4. #4
    執行此操作的最佳方法是使用具有強大功能的語言,如動態變量,類和結構。使用數組和執行特殊的memrory managemnet對代碼和測試來說將是殘酷的。它可能已經完成,但人們不再這樣做了。

  5. #5
    它是MT4代碼的一部分 - 我需要在MT4中完成它。不管怎樣,謝謝。

  6. #6
    目前我打算做這樣的事情:編寫一個子函數來返回任何變量BLK的正確下一個值1.初始化所有變量BLK,第一個使用Value(Special.Value或如果沒有使用Start.Value) (@完成){//循環遍歷所有變量BLKS(IDX = 0; IDX lt; i.Size.Arrays; IDX ){//此變量BLK:位於End.Value if(UsedValue#91; IDX#93; == End.Value#91; IDX#93;){if(IDX == i.Size.Arrays - 1){Finished = true break}/重置並執行下一步對於此變量BLK GetNextValueForBLK(IDX); } else {//只需向前移動此BLK/GET NEXT GetNextValueForBLK(IDX)break}}}

  7. #7
    完成了它的基本實現,存儲在一個數組中,最後一部分用於運行Pseudo Trades Optimized代碼。在我打開帖子之前,我有一些瘋狂的複雜想法 - 但它實際上比我想像的要簡單得多。仍然需要做一些編碼: - 想要為字符串變量實現優化過程(可能在步驟部分使用分隔的字符串列表) - 也許將來(如果我需要):datetime將其四捨五入:目前我只是不知道該怎麼做添加步驟秒選擇一個分隔的字符串列表...仍然缺少一些點點滴滴,但到目前為止相當滿意。

  8. #8
    只是有一個想法:而不是實現一個字符串項(作為分隔的字符串列表)我將做一個更通用的ListItem - 例如,這將允許我循環優化通過TF或任何不嚴格的序列:逐步。無論如何:這是線程主題。預計不會再發帖了。乾杯阿提

發布權限

  • 您不可發布新主題
  • 您不可回复
  • 您不可發布附件
  • 您不可編輯您的帖子
  •  
  • BB代碼是打開的
  • 表情符號是打開的
  • [IMG]代碼是打開的
  • [視頻]代碼是打開的
  • HTML代碼是關閉的