[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 28

 
利益はロットの大きさに依存する...ロットの大きさはレバレッジの大き さに依存する...
 

問題に直面する。

BBP MA Oscillatorのインジケータを書きました。

チャート上では問題なく動作しています。

しかし、EAから呼び出すと、データが一致しない。

設定されたパラメータはそれぞれ同じです。

BBP_0=iCustom("EURUSD",60, "BBP MA Oscillator",BBPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0);

問題は、どうしてそれが可能なのか、ということです。

 
//+------------------------------------------------------------------+
//|                                            BBP MA Oscillator.mq4 |
//|                                                   vasbsm@mail.ru |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "vasbsm@mail.ru"
#property link      ""

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property  indicator_width1  2
//---- input parameters
extern int       BBPeriod=155;
extern int       TypeMA=MODE_SMA;
extern int       SignalMA=172;
extern int       Type_MA_Signal=MODE_SMMA;
//-----------------------------
double BBBuffer[];
double TempBuffer[];
double OsmaBuffer[];
double SignalBuffer[];

int init()
  {
   string short_name;
   IndicatorBuffers(4);
   IndicatorDigits(Digits);
   
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexDrawBegin(0, SignalMA);
   IndicatorDigits(Digits+2);
   
   SetIndexBuffer(0, OsmaBuffer);
   SetIndexBuffer(1, SignalBuffer);  
   SetIndexBuffer(2, BBBuffer);
   SetIndexBuffer(3, TempBuffer); 
   
   short_name="Bulls Bears Power MA("+ BBPeriod+","+ SignalMA+")";     
   IndicatorShortName( short_name);
   SetIndexLabel(0, short_name);   
   return(0);
  }
int deinit()
  {

   return(0);
  }
int start()
  {
   int counted_bars=IndicatorCounted();
   if(Bars<= BBPeriod) return(0);
//----------------------------------------------------------------
   int limit=Bars- counted_bars;
   if( counted_bars>0) limit++;
   for(int i=0; i< limit; i++)
      TempBuffer[ i]=iMA(NULL,0, BBPeriod,0, TypeMA,PRICE_CLOSE, i);
//----------------------------------------------------------------
   i=Bars- counted_bars-1;
   while( i>=0)
     {
      BBBuffer[ i]=High[ i]+Low[ i]-2* TempBuffer[ i];
      i--;
     }
   i=Bars- counted_bars-1;
   while( i>=0)
     {
      SignalBuffer[ i]=iMAOnArray( BBBuffer,Bars, SignalMA,0, Type_MA_Signal, i);
      i--;
     }
   i=Bars- counted_bars-1;
   while( i>=0)
     {
      OsmaBuffer[ i]= BBBuffer[ i]- SignalBuffer[ i];
      i--;
     }         
   return(0);
  }
 

今、面白い機能を発見しました...。

(どこかで既に記述されているかもしれませんが、まず頭を使い、次に教科書を使うようにしています ;)))

これにより、IF型の選択基準(フィルター)をもう一つ使えるようになりました。

orders += OrderProfit()<1;

必要な命令を選択する一般的で伝統的なIFフィルタのほか。

上記コードの条件導入により、利益が1未満の注文が選択されました。

*

これが正しいかどうかもわからないが、うまくいくようだ...。

 
zfs >> :

問題に直面する。

BBP MA Oscillatorのインジケータを書きました。

チャート上では問題なく動作しています。

しかし、EAから呼び出すと、データが一致しない。

設定されたパラメータはそれぞれ同じです。

BBP_0=iCustom("EURUSD",60, "BBP MA Oscillator",BBPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0);

問題は、どうしてそれが可能なのか、ということです。

で、もしデフォルトで

BBP_0=iCustom(NULL,0, "BBP MA Oscillator",0,0);

で、これは明らかに間違っている

if( counted_bars>0) limit++

はず

if( counted_bars>0) limit--;
 

JavaDevさん、Granit77さん、回答ありがとうございました!本題の回答はまだですが、チュートリアルをさらに読んでみることにしました。もしかしたら、その過程で私の疑問に対する答えが明確になるかもしれません。

 
GGeoZ >> :

...と、基本的な疑問に対する答えはまだ出ていなかったのですが、さらに教科書を読んでみることにしました。もしかしたら、その過程で私の疑問に対する答えが明確になるかもしれません。

SK.さんがこのスレッドを見ていないことを祈りつつ、チュートリアルで「読んだことをシェア」させていただきます。普通の馬鹿なユーザーである私は、「そのうち解決するだろう」と思って、理解できない部分を読み飛ばすだけです。あなたの質問は、私には思いつきもしませんでした(年齢がね・・・)。社内では、intは指で数えられるもの、doubleはそれ以外のものという認識でいました。:))

 
誰か私の質問に答えてください...興味深いのは、発散の順序は重要ではありませんが、重要であるということです...。このインジケーターと別のインジケーターを使った儲かる戦略を教えていただければ幸いです。計算に誤差があるかもしれませんが...。
 
granit77 писал(а)>>

SK. さんがこのスレッドを見ていないことを祈りつつ、教科書で「読んだことをシェア」します。普通の馬鹿なユーザーである私は、「そのうち解決するだろう」と思って、わかりにくいところは飛ばしてしまうのです。あなたの質問は、私には思いつきもしませんでした(年齢がね・・・)。社内では、intは指で数えられるもの、doubleはそれ以外のものという認識でいました。:))

ブラボー!!!!

グッとくるのが快感でした。質問もよくわからない。

念のため、近所の指を追加しておく。

 
皆さん、利用可能なすべての資金で開設するための最大ロットサイズの計算方法を教えてください。