EAプログラミングチュートリアルの一般的な関数
実行されるMQL 4プログラムごとに、一定数の変数を設定することで、チャートの価格状態に簡単に対応できます。
スマートトレーディング、スクリプト、または顧客指標。
データは可変量モデルに適用されます。
事前定義された変数とは別に扱うことができます。
これらのデータは、Refresh Rates()関数が有効になった後に更新されます。
Ask
Bars
Bid
Close
Digits
High
Low
Open
Point
Time
Volume
Ask
double Ask
現在の通貨ペアの最新の販売価格について。Refresh Rates()関数を使用して更新します。
Market Info()を参照してください。
例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,
"My order #2",3,D'2005.10.10 12:30',Red);
return;
}
Bars
int Bars
グラフの柱の数を返します。
iBars()を参照してください。
例:
int counter=1;
for(int i=1; i<=Bars; i++)
{
Print([i-1]を閉じる);
}
Bid
double Bid
現在の通貨ペアの最新の購入価格について。Refresh Rates()関数を使用して更新します。
Market Info()を参照してください。
例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)75)
{
OrderSend("EURUSD",OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,
"My Order #2",3,D'2005.10.10 12:30',Red);
return(0);
}
Close
double Close[]
シリーズ配列には、現在のチャートの各列の終値が含まれています。
系列配列要素は、逆順の順序、つまり最後から最初までの順序に導入されます。現在の最後のカラムのインデックスは配列内で0です。グラフの最初のカラムのインデックスはBars-1です。
iClose()を参照してください。
例:
int handle = FileOpen("file.csv", FILE_CSV|FILE_WRITE, ";");
if(handle0)
{
//テーブルバーのタイトルレコード
FileWrite(handle, "Time;Open;High;Low;Close;Volume");
//データロギング
for(int i=0; i FileWrite(handle, Time, Open, High, Low, Close, Volume); FileClose(handle); } Digits int Digits 現在の通貨ペアの小数点以下の為替レートを返します Market Info()を参照してください。 例: Print(DoubleToStr(Close[0],小数位)); High double High[] シリーズ配列には、現在のチャートの各列の最高価格が含まれています。 系列配列要素は、逆順の順序、つまり最後から最初までの順序に導入されます。現在の最後のカラムのインデックスは配列内で0です。グラフの最初のカラムのインデックスはBars-1です。 iHigh()を参照してください。 例: //---- 最大値 i=Bars-KPeriod; if(counted_barsKPeriod) i=Bars-counted_bars-1; while(i=0) { double max=-1000000; k = i + KPeriod-1; while(k=i) { price=High[k]; if(max k--; } HighesBuffer=max; i--; } //---- Low double Low[] シリーズ配列には、現在のチャートの各列の最低価格が含まれています。 系列配列要素は、逆順の順序、つまり最後から最初までの順序に導入されます。現在の最後のカラムのインデックスは配列内で0です。グラフの最初のカラムのインデックスはBars-1です。 iLow()を参照してください。 例: //---- 最小値 i=Bars-KPeriod; if(counted_barsKPeriod) i=Bars-counted_bars-1; while(i=0) { double min=1000000; k = i + KPeriod-1; while(k=i) { price=Low[k]; if(minprice) min=price; k--; } LowesBuffer=min; i--; } //---- Open double Open[] シリーズ配列には、現在のチャートの各列の始値が含まれています。 系列配列要素は、逆順の順序、つまり最後から最初までの順序に導入されます。現在の最後のカラムのインデックスは配列内で0です。グラフの最初のカラムのインデックスはBars-1です。 iOpen()を参照してください。 例: i = Bars - counted_bars - 1; while(i=0) { double high = High; double low = Low; double open = Open; double close = Close; AccumulationBuffer = (close-low) - (high-close); if(AccumulationBuffer != 0) { double diff = high - low; if(0==diff) AccumulationBuffer = 0; else { AccumulationBuffer /= diff; AccumulationBuffer *= Volume; } } if(i i--; } double Point 現在のチャートのポイント値を返します Market Info()を参照してください。 例: OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point); datetime Time datetime Time[] シリーズ配列には、現在のチャートの各列の開始時刻が含まれています。データは、1979年1月1日の0時から秒単位で、日付時刻のように時刻を表示します。 系列配列の要素は、逆順の注文、つまり最後から最初の注文に導入されます。現在の最後のカラムのインデックスは配列内で0です。グラフの最初のカラムのインデックスはBars-1です。 iTime()を参照してください。 例: for(i=Bars-2; i=0; i--) { if(High[i+1] LastHigh) LastHigh = High[i+1]; if(Low[i+1] < LastLow) LastLow = Low[i+1]; //---- if(TimeDay(Time) != TimeDay(Time[i+1])) { P = (LastHigh + LastLow + Close[i+1])/3; R1 = P*2 - LastLow; S1 = P*2 - LastHigh; R2 = P + LastHigh - LastLow; S2 = P - (LastHigh - LastLow); R3 = P*2 + LastHigh - LastLow*2; S3 = P*2 - (LastHigh*2 - LastLow); LastLow = Open; LastHigh = Open; } //---- PBuffer = P; S1Buffer = S1; R1Buffer = R1; S2Buffer = S2; R2Buffer = R2; S3Buffer = S3; R3Buffer = R3; } Volume double Volume[] シリーズ配列には、現在のチャートの各列のボリュームが含まれています。 系列配列要素は、逆順の順序、つまり最後から最初までの順序に導入されます。現在の最後のカラムのインデックスは配列内で0です。グラフの最初のカラムのインデックスはBars-1です。 iVolume()を参照してください。 例: if(i==0 && time0 { d_volume += Volume[0]; if(Low[0] if(High[0]d_high) d_high = High[0]; d_close = Close[0]; } last_fpos = FileTell(ExtHandle); last_volume = Volume; FileWriteInteger(ExtHandle, i_time, LONG_VALUE); FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE); 転載は出典を明記してください:https://www.daoctech.com/fxoutrade/1990.html 免責事項:この記事の内容は外国為替アカデミーの見解を表すものではありません。内容は参考用であり、投資アドバイスを構成するものではありません。投資家がこれに基づいて操作する場合、リスクは自己負担となります。
