//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- Use the initializing function to populate the vector
vector r(10, ArrayRandom); // Array of random numbers from 0 to 1//--- Calculate the average valuedouble avr=r.Mean(); // Array mean value
vector d=r-avr; // Calculate an array of deviations from the meanPrint("avr(r)=", avr);
Print("r=", r);
Print("d=", d);
vector s2=MathPow(d, 2); // Array of squared deviationsdouble sum=s2.Sum(); // Sum of squared deviations//--- Calculate standard deviation in two waysdouble std=MathSqrt(sum/r.Size());
Print(" std(r)=", std);
Print("r.Std()=", r.Std());
}
/*
avr(r)=0.5300302133243813
r=[0.8346201971495713,0.8031556138798182,0.6696676534318063,0.05386516922513505,0.5491195410016175,0.8224433118686484,...
d=[0.30458998382519,0.2731254005554369,0.1396374401074251,-0.4761650440992462,0.01908932767723626,0.2924130985442671, ...
std(r)=0.2838269732183663
r.Std()=0.2838269732183663
*///+------------------------------------------------------------------+//| Fills the vector with random values |//+------------------------------------------------------------------+void ArrayRandom(vector& v)
{
for(ulong i=0; i<v.Size(); i++)
v[i]=double(MathRand())/32767.;
}
int cl_ctx;
//--- Initializing the OpenCL contextif((cl_ctx=CLContextCreate(CL_USE_GPU_DOUBLE_ONLY))==INVALID_HANDLE)
{
Print("OpenCL not found");
return;
}
2022年8月4日(木)に、MetaTrader 5プラットフォームのアップデートがリリースされる予定です。このアップデートには、次の変更が含まれます。

世界の取引所市場には、約7,000の証券と2,000以上のETFが上場しています。さらに、取引所では、先物などのデリバティブが提供されています。MetaTrader 5プラットフォームでは、為替商品の巨大なデータベースにアクセスできます。ファンダメンタルデータにアクセスするには、[気配値表示]から直接ワンクリックで選択したアグリゲーターのWebサイトに切り替えることができます。各金融商品の情報ソースを選択することができ、利便性に優れています。当社は、MetaTrader 5プラットフォームのアルゴリズム取引と機械学習のための機能拡張を続けています。以前は、新しいデータ型として、行列とベクトルを追加し、データ処理に配列を使用する必要性をなくしました。これらのデータ型を使った操作のために、MQL5には70以上のメソッドが追加されています。これらの新しいメソッドにより、線形代数と統計学の計算を1回の操作でおこなうことができるようになりました。乗算、変換、連立方程式を簡単に実装でき、過剰なコード行数を必要としません。最新のアップデートには数学機能が含まれています。
数学関数はもともと、スカラー値に対して関連する演算をおこなうために設計されたものです。このビルド以降、ほとんどの関数が行列やベクトルに適用できるようになります。これには、MathAbs、MathArccos、MathArcsin、MathArctan、MathCeil、MathCos、MathExp、MathFloor、MathLog、MathLog10、MathMod、MathPow、MathRound、MathSin、MathSqrt、MathTan、MathExpm1、MathLog1p、MathArccosh、 MathArcsinh、MathArctanh、MathCosh、MathSinh、MathTanhなどが含まれています。このような操作は、行列やベクトルを要素ごとに扱うことを意味します。例:
MathModおよびMathPowの場合、2番目の要素には、適切なサイズのスカラーまたは行列/ベクトルを指定することができます。
次は、ベクトルに数学関数を適用して標準偏差を計算する例です。
MQL5:float型を用いた演算のための数学関数を改善しました。Float型の行列とベクトルに数学関数を適用できるようになったことで、float型のスカラーに適用する数学関数が改善されました。以前は、これらの関数パラメータは無条件にdouble型にキャストされ、その後、対応する数学関数の実装が呼び出されてその結果がfloat型にキャストバックされていました。余分な型キャストをすることなく、演算が実装されるようになりました。
次の例では、数学的な正弦の計算の違いを示しています。
損失関数は、モデルが実際の値をどの程度予測できるかを評価するものです。モデル構築は、各段階での関数値の最小化を目標とします。アプローチは、特定のデータセットに依存します。また、損失関数は重みとオフセットに依存することができます。損失関数はニューラルネットワークの一般的な評価をおこなうため、ベクトルではなく一次元です。
特定のタスクにdoubleをサポートするGPUを強制的に使用するよう設定するには、CLContextCreateの呼び出しにCL_USE_GPU_DOUBLE_ONLYを使用します。
volume=-1 && volume_real=2:volume_real=2を使用
volume=3 && volume_real=0:volume=3を使用
高精度ボリュームMqlBookInfo.volume_realはMqlBookInfo.volumeより優先度が高くなります。したがって、両方の値が指定され、かつ有効である場合は、volume_real が使用されます。
気配値表示要素のいずれかが誤って記述されている場合、転送された状態は完全に破棄されます。
このアップデートは、Live Updateシステムを通じて提供される予定です。