MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 149

 

こんにちは。

すべてのバーを1つずつ調べずに、日付と時間で正しいバーを見つける方法を教えてください。

 
Sergey:

こんにちは。

すべてのバーを1つずつ調べずに、日付と時間で正しいバーを見つける方法を教えてください。


iBarShiftについて 読む
 

int TotalPos=-1;

void start()

{
//残りのコード

//--
if(OrdersTotal()!=TotalPos) { // 刻み目ごとに拷問を行わない。
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if(OrderSymbol()==Symbol() && OrderType()<=1) { { (オーダーシンボル()==シンボル() && オーダータイプ() <=1)
ヒストリー()。


}
}}}TotalPos=OrdersTotal(); // 数量を記憶する
//--
}



void History() {
string Ticket=(string)OrderTicket();
color col=Red;
if(OrderType()==0)col=Blue。
datetime a=OrderOpenTime();
double b=OrderOpenPrice();
datetime c=OrderCloseTime();
double d=OrderClosePrice();
double prSep=OrderProfit()+OrderCommission()+OrderSwap()です。
double prAll=0;
int cn=0;
文字列 hTicket
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if(OrderSymbol()==Symbol() && OrderType()<=1) { { (オーダーシンボル()==シンボル() && オーダータイプ() <=1)
datetime ct=OrderCloseTime();
// グリッドの最初の注文と最後の注文の終値の差は60秒
if(c<=ct+60 && c>=ct-60){のようになります。
prAll+=OrderProfit()+OrderCommission()+OrderSwap()です。
hTicket=(string)OrderTicket()です。
cn++です。
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b)を実行。
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1)。

ObjectCreate(Ticket+"Line"、OBJ_TREND、0、a、b、c、d)。
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1)。
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Line",OBJPROP_RAY,0)。

ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d)を実行。
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Green)。
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3)。

Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d)を実行。
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0)。
ObjectSetText(Ticket+"Profit",DoubleToString(prAll,2),10, "Arial",White)を実行。
ObjectSet(Ticket+"Profit",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Profit",OBJPROP_TIME1,c+Period()*60*2);
}

この関数のコードに何を追加すれば,トレードのこれらの場所に水平線を引けるか。

トレードからチャートの境界線までの座標 オフセット

 

.crvファイルからの読み込みについて教えてください。

ファイルには、次のようなエントリーがあります。

2010.03.18 01:35:00;1.37409;1.37119

変数の各値を個別に取得するコードの書き方

 
missha32:

.crvファイルからの読み込みについて教えてください。

ファイルには、次のようなエントリーがあります。

2010.03.18 01:35:00;1.37409;1.37119

変数の各値を個別に取得するコードの書き方

ここを読んで/勉強して ください。
Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы
  • 2016.09.28
  • Dmitry Fedoseev
  • www.mql5.com
Статья-практикум по работе с файлами в MQL5. Читайте, выполняйте несложные задания, и к концу статьи вы обретете не только теоретические знания, но и практические навыки по работе с файлами в MQL5.
 
Alexander Antoshkin:

int TotalPos=-1;

void start()

{
//残りのコード

//--
if(OrdersTotal()!=TotalPos) { // 刻み目ごとに拷問を行わない。
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if(OrderSymbol()==Symbol() && OrderType()<=1) { { (オーダーシンボル()==シンボル() && オーダータイプ() <=1)
ヒストリー()。


}
}}}TotalPos=OrdersTotal(); // 数量を記憶する
//--
}



void History() {
string Ticket=(string)OrderTicket();
color col=Red;
if(OrderType()==0)col=Blue。
datetime a=OrderOpenTime();
double b=OrderOpenPrice();
datetime c=OrderCloseTime();
double d=OrderClosePrice();
double prSep=OrderProfit()+OrderCommission()+OrderSwap()です。
double prAll=0;
int cn=0;
文字列 hTicket
for(int i=OrdersHistoryTotal()-1; i>=0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if(OrderSymbol()==Symbol() && OrderType()<=1) { { (オーダーシンボル()==シンボル() && オーダータイプ() <=1)
datetime ct=OrderCloseTime();
// グリッドの最初の注文と最後の注文の終値の差は60秒
if(c<=ct+60 && c>=ct-60){のようになります。
prAll+=OrderProfit()+OrderCommission()+OrderSwap()です。
hTicket=(string)OrderTicket()です。
cn++です。
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b)を実行。
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1)。

ObjectCreate(Ticket+"Line",OBJ_TREND,0,a,b,c,d);
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col)。
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1)。
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Line",OBJPROP_RAY,0)。

ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d)を実行。
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Green)。
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3)。

Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d)を実行。
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0)。
ObjectSetText(Ticket+"Profit",DoubleToString(prAll,2),10, "Arial",White)を実行。
ObjectSet(Ticket+"Profit",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Profit",OBJPROP_TIME1,c+Period()*60*2);
}

この関数のコードに何を追加すれば,トレードのこれらの場所に水平線を引けるか。

トレードからチャートの境界線までの座標 オフセット

というようなものです.

string level="Level"+IntegerToString(iTime(_Symbol,iBarShift(OrderCloseTime())); // ид.уровня - по времени бара (!! не по тикету)

if (ObjectFind(level)‌==-1) {

  // гор.вектора нет - видимо первый ордер из закрытых на баре

  // сделать горизонтальную линию‌

  ObjectCreate(0,level,OBJ_TREND,0,OrderCloseTime(),OrderClosePrice(),OrderCloseTime()+PeriodSeconds(_Period)*3,OrderClosePrice);

 // указывающую только вправо‌

  ObjectSetInteger(level,‌OBJPROP_RAY,1);

  ObjectSetInteger(level,OBJPROP_RAYLEFT,0);

‌ // украсить её как-то :-)

 ObjectSetInteger(level,OBJPROP_‌COLOR,....)

 ....‌

} else {

  // гор.уровень есть - значит были ордера закрытые на этом баре

  // по фантазии - обновить метки/корректировать уровень/etc‌

}‌

 

こんにちは。

端末にロボットが表示されない理由は何ですか? それは、現地のプログラマーが書いたものです。他のロボットは、見えるところと見えないところがあります。

 
Serg_72:

こんにちは。

端末にロボットが表示されない理由は何ですか? それは、現地のプログラマーが書いたものです。他のロボットは、見えるところと見えないところがあります。

そして、"ローカルプログラマー "は、自分のロボットを動かせない理由を教えてくれないのですか?
 

こんばんは!(^o^)

このコードを書くのを手伝ってください、自分では無理だと感じています。

EURUSD で EA を実行するとき、このペアで未決済または保留の注文がない場合、2 つの保留注文を置く必要があります。

そのうちの1つがトリガーされた場合、別のものは表示されません。つまり、そのペアのすべての保留注文の合計が2を超えてはならず、他のペアですでに表示されている保留/オープン注文は考慮されません。

もう、頭を悩ませて、全く何も配置されず、その後、全てのティックを配置するんです。

とてもありがたいことです。

とてもありがたいことだと思います。

 
Serg_72:

こんにちは。

端末にロボットが表示されない理由は何ですか? それは、現地のプログラマーが書いたものです。他のロボットは、見えるところと見えないところがあります。

ロボットは「experts」フォルダにあり、*.ex4(5の場合は*.ex5)の形式である必要があります。
ターミナル - メニュー「ファイル/データフォルダを開く」→「MQL4/Experts」。

また、*.mq4 *.mq5のソースコードは起動しません - コンパイルが必要です。

ついでに、自分の製品の使い方を教えなかったプログラマーの首も引きちぎってしまえ