int i,accTotal=OrdersHistoryTotal(); string comment; for(i=accTotal-1;i>=0;i++) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; } // работа с ордером ... comment = OrderComment(); // Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ }
int i,accTotal=OrdersHistoryTotal(); string comment; for(i=accTotal-1;i>=0;i++) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; } // работа с ордером ... comment = OrderComment(); // Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ }
int i,accTotal=OrdersHistoryTotal(); string comment; for(i=accTotal-1;i>=0;i++) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; } // работа с ордером ... comment = OrderComment(); // Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ }
int StringFind( stringstring_value, // строка, в которой ищем stringmatch_substring, // что ищем intstart_pos=0// с какой позиции начинать поиск
int i,accTotal=OrdersHistoryTotal(); string comment; for(i=accTotal-1;i>=0;i++) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Ошибка при доступе к исторической базе (",GetLastError(),")"); break; } // работа с ордером ... comment = OrderComment(); // Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ }
int StringFind( stringstring_value, // строка, в которой ищем stringmatch_substring, // что ищем intstart_pos=0// с какой позиции начинать поиск
こう言ってはどうだろう。注文を通すコードを「こうすればいい」という説明付きで見せていただいて、初めて何が正しくて何が間違っているのかがわかるのです。関数の名前だけでは、結果に近づけません。
こんにちは...私を助けるために同意していただきありがとうございます...受注を締め括るための小さな仕事は、必要なイベントを適切なフォルダに追加するだけで済むように思えたのですが、そう簡単ではないことが判明しました......。以下は、MQL4 ReferenceTrading Functions から引用したサンプルコードです。
intOrdersHistoryTotal();
// 取引履歴から情報を取得するint i,accTotal=OrdersHistoryTotal();
for(i=0;i<accTotal;i++)
{
//---- 選択結果を確認 する
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("履歴データベースへのアクセスエラー(",GetLastError(),")).Print("履歴データベースへのアクセスエラー");
が壊れる。
}
// オーダーメイドで作業する...
}
...この関数は、クライアント端末に読み込まれた現在の口座の履歴のうち、決済された注文と削除された注文 の量を返します。履歴リストのサイズは、端末の「アカウント履歴」タブの現在の設定に依存します。
どのように検索するのか、なぜそれが必要なのか、私にはよくわかりません...。もしかしたら、邪魔にならないように、暗記して捨てることも必要なのでは?
新しく閉じた注文は、閉じた瞬間に短いビープ音で鳴らすことになっているんです。私のクライアントターミナルで決済されるすべての注文は、TrailStopLossとTakeProfitの 平均化による2つの タイプのみです。注文(注文グループ)を閉じるとき、どの方向(売り または買い)であっても、それらはStopLossまたはTakeProfitによってのみ分離され、対応するPlaySound関数に送信されなければならない。
こんにちは...私を助けるために同意していただきありがとうございます...受注を締め括るための小さな仕事は、必要なイベントを適切なフォルダに追加するだけで済むように思えたのですが、そう簡単ではないことが判明しました......。以下は、MQL4 ReferenceTrading Functions から引用したサンプルコードです。
intOrdersHistoryTotal();
// 取引履歴から情報を取得するint i,accTotal=OrdersHistoryTotal();
for(i=0;i<accTotal;i++)
{
//---- 選択結果を確認 する
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("履歴データベースへのアクセスエラー(",GetLastError(),")).Print("履歴データベースへのアクセスエラー");
が壊れる。
}
// オーダーメイドで作業する...
}
...この関数は、クライアント端末に読み込まれた現在の口座の履歴のうち、決済された注文と削除された注文 の量を返します。履歴リストのサイズは、端末の「アカウント履歴」タブの現在の設定に依存します。
どのように検索するのか、なぜそれが必要なのか、私にはよくわかりません...。もしかしたら、邪魔にならないように、暗記して捨てることが必要なのでは?
新しく閉じた注文は、閉じた瞬間に短いビープ音で鳴らすことになっているんです。私のクライアントターミナルで決済されるすべての注文は、TrailStopLossとTakeProfitの 平均化による2つの タイプのみです。注文(注文グループ)を閉じるとき、どの方向(売り または買い)であっても、StopLossまたはTakeProfit の閉じるコマンドによってのみ分離され、対応するPlaySound関数に送信 されなければ なりません。
0が一番最初、accTotal-1が一番最後なので、順序は逆順に検索する必要があります。このコードでは、"// work with order "の後にコメントを記憶し、SLまたはTPの終了コメントがあるかどうかをチェックします。
intOrdersHistoryTotal();
// 取引履歴から情報を取得するint i,accTotal=OrdersHistoryTotal();
for(i=0;i<accTotal;i++)
{
//---- 選択結果を確認 する
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("履歴データベースへのアクセスエラー(",GetLastError(),")).Print("履歴データベースへのアクセスエラー");
が壊れる。
}
// オーダーメイドで作業する...
}
stringOrderComment()。
の文字列コメント です。if(OrderSelect(10,SELECT_BY_TICKET)==false)
{
Print("OrderSelect() "はエラーを返しました",GetLastError());
return(0) です。
}
comment=OrderComment()。
// ...
返信ありがとうございました.OrdersHistoryTotal 関数で選択した注文のコメントを返すOrderComment 関数(MQL4Trading FunctionsReference)のコードを追加すると、以下のようなコードになります・・・。が、端末の履歴で新規に決済した注文を追跡する機能はないのでしょうか?"0- very first.accTotal-1- last" - 端末の履歴で「最初に閉じた」「最後に閉じた」という意味ですが、時間によるものでしょうか......?は、正しく理解できたでしょうか?
が、端末の履歴で新規に決済した注文を追跡する機能はないのでしょうか?
標準的なものがないのです。
string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
標準的なものがないのです。
string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
ありがとうございます ...StringFind= 文字列の中の部分文字列を検索する関数のことですね。
);
検索したい部分文字列が始まる文字列の位置番号を返す。
...またはStringCompare 関数 -2つの文字列を比較 する?
ありがとうございます ...StringFind= 文字列の中の部分文字列を検索する関数のことですね。
);
検索したい部分文字列が始まる文字列の位置番号を返す。
...
正解です。
ありがとうございます ...とすると、次のようなコードになります。
int i,accTotal=OrdersHistoryTotal();
int StringFind(string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value, // строка, в которой ищем
string match_substring, // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
ありがとうございます ...という形になります。
int i,accTotal=OrdersHistoryTotal();
int StringFind(string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value, // строка, в которой ищем
string match_substring, // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
初心者の方からの質問
A1exPit, 2016.11.30 22:14
SELECT_BY_POSによるOrderSelectで、どの0オーダーが最後に発注されたのか、最初に発注されたのか教えてください。両方試しているのですが、逆にエラーモディファイ#0が飛んできてしまいます。