[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5.

 

(前編はこちら)


こんにちは、mql4で、いくつかの買いポジションのうち、最安値から始めて、指定したロット数(合計)を数え、そのロット数以下の価格を出力する関数を提案していただけませんか。注文は成行注文です。そして、同じように、売り物にも。

はっきり言って、ロット数の違う注文ばかりです。この関数は、"sum of lots <=sum "という条件が真である限り、OrderOpenPriceの昇順で注文の合計を出します。

 
pechenuga:

(前編はこちら)


こんにちは、mql4で、いくつかの買いポジションのうち、最安値から始めて、指定したロット数(合計)を数え、そのロット数以下の価格を出力する関数を提案していただけませんか。注文は成行注文です。そして、同じように、売り物にも。

はっきり言って、ロット数の違う注文ばかりです。この関数は、"sum of lots <=sum "という条件が正しい限り、OrderOpenPriceの昇順で注文を集計します。


この関数は、ロットの合計数、合計と与えられたロット数または実際の値が与えられたものよりも高いか低いかどうかに応じて偽-真との間の差は、何を返すべきでしょうか?

より正確には、出来高が指定したものよりも多いか等しい場合、最後の注文の始値とは、どのような価格のことを言うのでしょうか?

 

以上、私の鍋が沸騰しました...。

このコードからMEDIUMのチェックを外すと、線がくっきりと描き出されるようになります。

元に戻すと...EAが全く何も描画しない!?

エラーになった方、その理由を教えてください。

コンパイラはエラーを表示しない

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);

if ( Hour()>=10 && Hour()<20) 
   {  
      if 
        ( Ma_1>Ma_2)         
              
 { SetVLine(Blue, "", 0, 0, 1);} 

}
 
取引を可視化 するには、どのExpert Advisorを使うのが良いのか、アドバイスをお願いします。ここでも、異なるTFを同時に使用できることが望まれます。両方同時に使いたいので、よろしくお願いします。
 
lottamer:

以上、私の鍋が沸騰しました...。

このコードからMEDIUMのチェックを外すと、線がくっきりと描き出されるようになります。

元に戻すと...EAが全く何も描画しない!?

エラーになった方、その理由を教えてください。

コンパイラはエラーを表示しない


SetVLine()を表示します。
 
rigonich:

SetVLine()を表示します。

//==========================
//+----------------------------------------------------------------------------+
//| 作成者 : Kim Igor V. aka KimIV, http://www.kimiv.ru||Google Play!
//+----------------------------------------------------------------------------+
| バージョン:2008年7月2日
//| 説明 : オブジェクトOBJ_VLINE の 垂直線の設定 |...
//+----------------------------------------------------------------------------+
//| パラメータを指定します。|
//| cl - 線の色 |.
//| nm - 名前 ("" - 現在のバーの開始時刻) |.
//| t1 - 時間 (0 - 現在のバーの開始時間) |.
//| st - ラインスタイル (0 - 単純なライン) |.
//| wd - 線幅 (1 - デフォルト) |.
//+----------------------------------------------------------------------------+
void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {.
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (t1<=0) t1=Time[0];
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0;)。
ObjectSet(nm, OBJPROP_TIME1, t1)です。
ObjectSet(nm, OBJPROP_COLOR, cl)です。
ObjectSet(nm, OBJPROP_STYLE, st)です。
ObjectSet(nm, OBJPROP_WIDTH, wd)を使用します。
}
 
rigonich:


この関数は、実際の値が指定された値より高いか低いかによって、ロットの合計数、合計と指定されたロット数との差、または偽-真を返すべきでしょうか?

より正確には、出来高が所定の数量以上ある場合の最後の注文の始値とは、どのような価格のことを言うのでしょうか。

この関数は、必要なロット数の注文が位置する価格以下を返す必要があります。つまり、ロット数が「sum」よりも大きくなるとすぐに、この関数はその最後の注文の価格を返します
 
lottamer:

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);
if(TimeHour(iTime(Symbol(),0,0))>10&&TimeHour(iTime(Symbol(),0,0))<20)
   {
   if(Ma_1>Ma_2)SetVLine(Blue, "", 0, 0, 1);
}  
 
rigonich:



あなたのコードは動作しません!!!:)))))))))))))))))))))))))))線は引かれない。

と時間は関係ない。時刻は正しいです。プリントで 出力していたので...。

そして、平均値との比較ではなく、ストキャスティクスとの比較を置くと、すべてが明確に描かれます。

Stoch_1=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_MAIN,1); 
Stoch_2=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);


if ( Hour()>=10 && Hour()<20)  
// if ( Ma_1>Ma_2)          // убрал средние
//    {
                      
         if (Stoch_1>Stoch_2)
 { SetVLine(Blue, "", 0, 0, 1);}   
 

リゴニッチも 沸いてるみたいだし :))))))

念のため、他の動作中のEAからすべてのコンポーネントをコピーしてみました。

DID NOT DRAW!

は、「描く」を「買う・売る」に変更しました。

NOT WORKING!

MAGICAL BLEEP!のようです。

プリントアウトした平均値はどちらも134ですが、その周期は20倍(!)も違います。

 
lottamer:

リゴニッチも 沸いてるみたいだし :))))))

念のため、他の動作中のEAからすべてのコンポーネントをコピーしてみました。

DID NOT DRAW!

は、「描く」を「買う・売る」に変更しました。

IT WON'T WORK!

MAGICAL BLEEP!のようです。


また、デモ機とテスターのどちらで確認するのですか?