エキスパート: FAT PANEL - ページ 2

 
Vigor:
マニュアルを作りますが、短いものです。

そして、独自の機能(インジケーター、ログエレメント、状態など)を追加するためのマニュアル。

理想的な(しかし簡単ではない)バリエーション:すべての機能要素をプラグインのように "簡単にアタッチできる "ようにすること。:)

--

クールなことをやってくれたね、イゴール。ありがとう!夕方からずっとこれで遊んでいたんだ。

まだコードには手をつけていないけど、今週末にやろうと思っている。いくつかの機能がどのように実装されているのか、詳しく理解したいんだ。

コードをざっと見ただけで、とても楽しい印象を受けました。

 

ブロックは初歩的な方法で書かれている!もしMQLにget_declared_classes、class_exists、is_subclass_ofのようなメカニズムがあれば、新機能のインストールはすべて、新しいクラス(基本クラスの子孫)のenclode/addファイルで済むだろう。

//+------------------------------------------------------------------+
class CAlgoBlockLogicOr: public CAlgoBlockLogic {
        public:
        //+------------------------------------------------------------------+ 
        void CAlgoBlockLogicOr() {              
                setLabel("name",12,20,1,"OR");//--uniq, x, y, fontsize, title                
                //--コネクター
                CConnectPointer* pointer1 = new CConnectPointer();
                pointer1.connectType = ALGO_BOOL;
                pointer1.connectDirection = ALGO_DIRECTION_IN;
                pointer1.x = 0;
                pointer1.y = 0.11;
                connectPointers.Add(pointer1);
                
                CConnectPointer* pointer2 = new CConnectPointer();
                pointer2.connectType = ALGO_BOOL;
                pointer2.connectDirection = ALGO_DIRECTION_IN;
                pointer2.x = 0;
                pointer2.y = 0.89;
                connectPointers.Add(pointer2);
                
                CConnectPointer* pointer3 = new CConnectPointer();
                pointer3.connectType = ALGO_BOOL;
                pointer3.connectDirection = ALGO_DIRECTION_OUT;
                pointer3.x = 1;
                pointer3.y = 0.5;
                connectPointers.Add(pointer3);
        }
        
        bool operate(CAlgoBlockLogic* s1, CAlgoBlockLogic* s2) {
                bool S1 = s1.process();
                bool S2 = s2.process();
                if ( S2 || S1 ) {  
                        return (true);
                }
                return (false);
        }
        
        //+------------------------------------------------------------------+
};

また、ビジュアルモードでコード挿入を 行うと、新しいブロックが勝手に追加されます。EAをオンザフライで再コンパイルし、新しい "生成された "インクルードをピックアップすることは、すでに解決済みです。テスター用のブロックの入力パラメータの更新は、現在このように実装されています。

 
こんにちは、作者の方。組み立てたブロックのスクリーンショット、またはテスト時にそのような画像が表示された保存ファイルを掲載することは可能でしょうか?良いマニュアルになると思います。
 

コードベースの説明では、4ブロックの同じスキームである。操作ブロックの値300だけが">"である。回路図ファイルはアーカイブの中にあるので、解凍して次のフォルダに入れてください。

フォルダに解凍してください。

(パスが違うかもしれないので、fatpanel.datファイルを検索して置き換えた方がよい)

ファイル:
FATPANEL.rar  1 kb
 

新バージョンの準備中だが、2005年からの同じストラテジーの実行をお見せしよう。テストモード「毎ティック」。トレーリング・ストップの実験:

図には戦略のすべてのパラメータとその原理が示されている。再投資なし。ブロックを追加したバージョンは近日公開予定。

ストラテジーテスターレポート
MetaQuotes-Demo (Build 370)

設定
エキスパート・アドバイザー ファットパネル
シンボル EURUSD
期間 M1 (2005.01.01 - 2010.12.17)
入力パラメータ
ブローカー MetaQuotes Software Corp.
通貨: 米ドル
初期預金: 10 000.00
レバレッジ 1:100

結果
バー 2095758 ティキ 39061924
純利益 468 436.28 利益合計 1 377 840.48 損失合計 -909 404.20
利益率 1.52 勝利への期待 84.33
回収率: 16.62 シャープレシオ: 0.05

バランスシートのドローダウン
絶対的バランスシート・ドローダウン 4 393.10 残高の最大ドローダウン 5 593.40 (8.46%) 相対的ドローダウン 8.46% (5 593.40)
資金のドローダウン
資金の絶対的ドローダウン 4 622.90 資金の最大ドローダウン 6 119.20 (9.21%) ファンドの相対ドローダウン 9.21% (6 119.20)

総取引 5555 ショート・トレード (% won): 3237 (56.32%) ロング・トレード (% won): 2318 (60.05%)
合計取引 268659 利益を得た取引 (全体の割合): 3215 (57.88%) 損失トレード (全体に占める割合) 2340 (42.12%)

最大の利益トレード 8 040.10 最大の負けトレード -7 181.70

平均利益トレード 428.57 平均負けトレード -388.63

最大継続勝利数(利益) 75 (9 306.86) 最大連続損失数(損失) 24 (-13 829.70)

最大連続利益(勝利数):12 396.20 (14) 12 396.20 (14) 最大連続負け(負け数): -13 829.70 (24) -13 829.70 (24)

平均連続利益 3 平均連続損失 2

 
取引回数の 制限は、指定されたロットで各ティックで取引を開始するため、実際の取引となり、何が良いのでしょうか?
Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 
こうして、ポジションのボリュームが 得られる。常に「感覚で」補充された部分は、最終的にビッドで局所的な極値を見つける。また、一方向に1ポジション以上のオープンを制限すると、より有利なオープンの瞬間を見逃してしまい、戦略は失敗する。この制限を加えるのは難しいことではない。ANDとIS_BUY(またはIS_SELL)+NOT。
 
Vigor:
こうして、ポジションのボリュームが 得られる。常に「感覚で」補充された部分は、最終的にビッドで局所的な極値を見つける。また、一方向に1ポジション以上のオープンを制限すると、より有利なオープンの瞬間を見逃してしまい、戦略は失敗する。この制限を加えるのは難しいことではない。ANDとIS_BUY(またはIS_SELL)+NOT。
ありがとうございます。最終的な出来高がわからなくなるのはわかります。
 

バージョン0.2が動きません。どうすれば動くようになりますか?

 

この問題はターミナルの最近のビルドの1つにあった。

https://www.mql5.com/ru/forum/1111/page232

ターミナルを最新バージョン(修正済み)に更新した場合、インジケーター(mql5/indicators/fatpanel/フォルダ内)とExpert Advisor(mql5/experts/fatpanel/フォルダ内)を再コンパイルする必要があります。