[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 463

[Удален]  
borilunad:

スリッページ、初値後、最低でも30で5!?
ああ、なるほど、そういうことだったのか。偏差値セットを持って います。
 
nemo811:
それは私のアイデアです。これから試してみます。ありがとうございます。

また、一部のブラケットが正しく配置されていません。

    for (i=OrdersTotal()-1;i>=0;i--)
    {
        if (!OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
        {Alert ("Ошибка ", GetLastError(), " выбора ордера!");}
        else
        {
            SMB = OrderSymbol();
            SchBuyLotsSMB = 0;
            SchSellLotsSMB = 0;
            for (ii=OrdersTotal()-1;ii>=0;ii--)
            {
                if (!OrderSelect (ii, SELECT_BY_POS, MODE_TRADES))
                {Alert ("Ошибка ", GetLastError(), " выбора ордера!");}
                else
                {
                    if (OrderSymbol() == SMB)
                    {
                        if (OrderType()==OP_BUY) {SchBuyLotsSMB +=OrderLots();}
                        if (OrderType()==OP_SELL) {SchSellLotsSMB += OrderLots();}
                    }
                }
            }
            MarketLotSMB=SchBuyLotsSMB-SchSellLotsSMB;
            if (MarketLotSMB == 0.0) continue;
            RefreshRates();
            if (MarketLotSMB<0)
            {
                MarketLotSMB = MathAbs (MarketLotSMB);
                Price = MarketInfo (SMB, MODE_ASK);
                OPENORDER ("Buy", SMB, MarketLotSMB, Price);
            }
            else if (MarketLotSMB>0)
            {
                Price = MarketInfo (SMB, MODE_BID);
                OPENORDER ("Sell", SMB, MarketLotSMB, Price);
            }            
        }
    }

で、2サイクル目にはオーダーのオーバーロケーションがあり、2サイクル目の終了後(テスターでない場合)、例えばSMBが!=OrderSymbol()になることも考慮する必要があります。

[Удален]  
TarasBY:

また、一部のブラケットが正しく配置されていません。

で、2サイクル目には注文のオーバーロケーションがあり、2サイクル目の終了後(テスターでない場合)、例えばSMBが != OrderSymbol() になることも考慮しなければなりません。

ブラボー!あなたのバリアントが効きます。

ありがとうございました。


borilunad- こちらもありがとうございます。

[Удален]  
TarasBY:

また、一部の括弧が誤っている。

自分のバージョンでも正しく括弧をつけたらうまくいきました。

いつもありがとうございます。

 

グラニット77

私はそうは思いません。mqlを超える必要はなく、チャートからEAを削除する必要もない。 EAのコードにこれを設けることで、プログラム的に取引をブロックすることができれば十分です。

ずん子
そうそう!そうなんです。リモコンのみ例外。

ご意見ありがとうございました。しかし、やはりどちらが良いのかわからず、選んでしまいました。

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);

さて、もう一つ質問があります。 すぐに消えるのではなく、ある一定のトリガー(例えば:Kol=3)の後に消えるようにするには、コードに何を加えればよいのでしょう?

#property show_inputs
#include <WinUser32.mqh>
extern int Kol=3;

int start()
{
OrderSend(Symbol(),OP_SELL,0.05,Bid,333,0,0,"Тест",0,0,CLR_NONE);
while(!IsTradeAllowed()) Sleep(1000);
PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);
return(0);
}

ありがとうございました。

削除済み  

こんにちは。

AroonインジケーターのEAを作り始めました。MT4に搭載されていないインジケータを使いたいと思ったことは一度もありません。うまくいかない: ((((;゚Д゚))))))))

MT4でAroonのインジケータを使うつもりはないのですが、Aroonで使わなければならないので。

ファイル:
 
Sarguss:

こんにちは。

AroonインジケーターのEAを作り始めました。MT4に搭載されていないインジケータを使いたいと思ったことは一度もありません。うまくいかない: ((((;゚Д゚))))))))

ヒントが得られない、自分のミスを指摘されない。

これは非常に興味深いコードです。

Up1 = Highest(Symbol(),"Aroon_Horn2",MODE_HIGH,Aroon_Period-1,0);
 Up2 = Highest(Symbol(),"Aroon_Horn2",MODE_HIGH,Aroon_Period-1,1);
      Dn1 = Lowest(Symbol(),"Aroon_Horn2",MODE_LOW,Aroon_Period-1,0);
   Dn2 = Lowest(Symbol(),"Aroon_Horn2",MODE_LOW,Aroon_Period-1,1);

Highest()とLowest()はユーザー関数ですか?そうでない場合、どこでそのような構造を見つけたのでしょうか?
インジケータから値を取得する場合は、iCustom() 関数を使用する必要があります。

削除済み  
TarasBY:

これはVERYおもしろいコードです。

Highest()とLowest()はカスタム関数ですか?そうでない場合、どこでそのような構成を見つけたのでしょうか?
インジケータから値を取得する場合は、iCustom() 関数を使用する必要があります。

これは、インジケーターから直感しました。面白いに違いない :)

バグはこれだけですか?

Expert AdvisorをDemoにすると、「2012.10.26 21:49:56 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: iLowest関数のパラメータ2として無効な整数値です」と表示される。

2012.10.26 21:49:56 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: invalid integer number as parameter 2 for iHighest function" でも交差点Up & Downは動作するんだよね。

削除済み  
TarasBY:

これは非常に興味深いコードです。

Highest()とLowest()はカスタム関数ですか?ない場合は、どこでそのような構造を掘り出したのでしょうか?
インジケータから値を取得する場合は、iCustom() 関数を使用する必要があります。

くだらない質問で申し訳ないのですが、よろしくお願いします。

シャスwikidid。

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: カスタムインジケータ名は文字列である必要があります。

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 150+Aroon CADJPY,H1: Indicator call functionのパラメータ2が無効な整数値である。

 
Sarguss:

くだらない質問で申し訳ないのですが、よろしくお願いします。

ウィキディディウムである。

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 300+Aroon CADJPY,H1: カスタムインジケータ名は文字列である必要があります。

2012.10.26 21:59:19 2012.10.22 23:59 Trommel 150+Aroon CADJPY,H1: Indicator call functionのパラメータ2が無効な整数値である。

可変型について何か聞いていますか!1つ目のエラー - 前述のiCustom()において、インジケータ名は文字列でなければならない(すなわち、「インジケータ名」)。

2つ目のエラー - 同じiCustom()内で、インジケータに渡すパラメータを正しく入力しています。

これは理論ですが、実際に理解するには、他の人のコードに目を通し(コードベースにはたくさんあります)、これらの例に目を通してください。