どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 273

 
Zhunko:
図書館の ことです。
テストスクリプトでの例

Vadimさん、ありがとうございます。)方向性は理解できたが、MQL4でDLL無しで実装したい。

 
Barbarian:

Vadimさん、ありがとうございます。)方向性は理解できたので、DLLを使わずにMQL4で実装したい。

うまくいきません。
 

double bb_up0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_UPPER,0);

double bb_lo0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_LOWER,0);

//--- 皆さん、ボリンジャーバンドの 真ん中の線、以下、これらはすべて正しい選択なのか、それとも間違ったものがあるのでしょうか?MT5ではミドルラインの問題が解決されているが、MT4では見たことがない。

Alertスクリプトで確認すると、結果は同じですが、やはり?

double bb_bs0= (bb_up0+ bb_lo0)/2;

double bb_bs0= iMA(NULL,0,bb_p, 0,0,bb_ap, 0);

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_MAIN, 0)とする。

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,0, 0)とする。

 
Zhunko:
それはないでしょう。

そうですね、DLLがないと動かないというのは、もう実感しています。

 
rosomah:

double bb_up0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_UPPER,0);

double bb_lo0=iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_LOWER,0);

//--- 皆さん、ボリンジャーバンドの平均線、以下、これらはすべて正しい選択なのか、それとも間違ったものがあるのでしょうか?MT5では中間線の問題が解決されている、MT4では見たことがない。

Alertスクリプトで確認すると、結果は同じですが、やはり?

double bb_bs0= (bb_up0+ bb_lo0)/2;

double bb_bs0= iMA(NULL,0,bb_p, 0,0,bb_ap, 0);

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,MODE_MAIN, 0)とする。

double bb_bs0= iBands(NULL,0,bb_p,bb_dev,0, bb_ap,0, 0) とする。

ここでは、BB構築の主なサイクルを紹介します。

//--- main cycle
   for(i=pos; i<rates_total && !IsStopped(); i++)
     {
      //--- middle line
      ExtMovingBuffer[i]=SimpleMA(i,InpBandsPeriod,close);
      //--- calculate and write down StdDev
      ExtStdDevBuffer[i]=StdDev_Func(i,close,ExtMovingBuffer,InpBandsPeriod);
      //--- upper line
      ExtUpperBuffer[i]=ExtMovingBuffer[i]+InpBandsDeviations*ExtStdDevBuffer[i];
      //--- lower line
      ExtLowerBuffer[i]=ExtMovingBuffer[i]-InpBandsDeviations*ExtStdDevBuffer[i];
      //---
     }

ここでは、単純なMAの計算を紹介します。

//+------------------------------------------------------------------+
//| Simple Moving Average                                            |
//+------------------------------------------------------------------+
double SimpleMA(const int position,const int period,const double &price[])
  {
//---
   double result=0.0;
//--- check position
   if(position>=period-1 && period>0)
     {
      //--- calculate value
      for(int i=0;i<period;i++) result+=price[position-i];
      result/=period;
     }
//---
   return(result);
  }
//+------------------------------------------------------------------+

見ての通り、中心線はCloseの単純MAです。あとは、それがベースになっています。だから、自分で結論を出してください。

SZZ.これからの労働のためのパンフレットとして。

平均値を次のように設定する。double bb_bs0 = (bb_up0+ bb_lo0)/2;

しかし、このように計算する方が良い: double bb_bs0= (bb_up0+ bb_lo0)*0.5;

結局のところ、掛け算の方が割り算より速いのです。

 
artmedia70:

ここでは、BBを作るための主なサイクルを紹介します。

ここでは、単純なMAの計算を紹介します。

ご覧の通り、センターラインはCloseのシンプルなMA です。あとは、それがベースになっています。結論はご自身でお決めください。

SZZ.今後の活動のためのパンフとして。

平均値を次のように設定する。double bb_bs0 = (bb_up0+ bb_lo0)/2;

しかし、このように計算する方が良い: double bb_bs0= (bb_up0+ bb_lo0)*0.5;

結局のところ、掛け算の方が割り算より速いのです。



1.ボリンジャーバンドの 値段でIMHO...

 
TWAP(VWAPではない)誰が計算したのか?どのように算出するのですか?ネットの解説を見てもさっぱりわからない...。
 
Barbarian:

はい、DLLがないと動かないことはもうわかっています


ジャスティファイ
 

今、不思議なことに気づきました。ベースとなるライブラリがあり、他のライブラリをインポート する。その一端をご紹介します。

//+---------------------------------------------------------------------------------------------------------------------------------------+
//| Библиотека базовых функций.                                                                                                           |
//+---------------------------------------------------------------------------------------------------------------------------------------+
// ================================================== Включения и импорт внешних модулей =================================================+
#include <hoz_Base@Include.mqh>
//+---
#import "hoz_LoggingToAnyWere@library.ex4"
    void fWrite_Log (string fs_Txt);
    void fPrint (string fs_Text);
#import
//+---
#import "hoz_HandlingWithErrorS@library.ex4"
    bool fErrorHandling (int fi_Error, bool& fb_InvalidSTOP);
    void fReConnect();
    string fErrorToString (int fi_Error);
    string fErrorDescription (int fi_Error);
#import
//+---
#import "hoz_ReturningSomeInfo@library.ex4"
    string fGet_NameOP (int fi_Type);
    string fGet_NameTF (int fi_TF = 0);
#import

これらのライブラリを使って今書いているowlを起動すると、ログに表示されます。

2013.11.23 16:15:51     2012.01.01 22:00  hoz_ReturningSomeInfo@library EURUSD,M5: loaded successfully
2013.11.23 16:15:51     2012.01.01 22:00  hoz_Base@Library EURUSD,M5: loaded successfully
2013.11.23 16:15:51     ExperT inputs: i_MAXSpread=50; i_Lot=0.1; i_KLot=2; i_SL=0; i_TP=10; i_Slippage=3; i_NumberOfTry=10; i_DistanceFromLastPos=10; i_TriggerForBU=25; i_PreservedProfit=5; TStop.Buy=70; TStop.Sell=10; TrailingStep=20; i_magic=3333021; 

というか、ログによると、hoz_ReturningSomeInfo@libraryと hoz_Base@Libraryの 2つのライブラリがロードされていますね。

しかし、これらのライブラリは、ジャーナルの hoz_LoggingToAny Were@library.ex4、hoz_HandlingWithErrorS@library.ex4 、欠落しています。こんなんでいいのか?それとも、アップロードされたすべてのライブラリーがジャーナルに掲載されるべきなのでしょうか?

 
Integer:

ジャスティファイ

少なくともwinapiのDLを使用することで、ウィンドウに文字を送ることができます。