PriceS(string sy="0", int op=OP_SELL, int mn=-1) { //Цена последнего открытого Селл ордераdatetime t;
double r=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает цену открытия последней открытой позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double PriceOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t=0;
double r=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
PriceOpenLastPos(); //текущий символ любая последняя поз.
PriceOpenLastPos(Symbol(),OP_SELL);//текущий символ OP_SELL без магика
PriceOpenLastPos(Symbol(),OP_BUY);//текущий символ OP_BUY без магика
それは不思議な感覚ですね。不要な変数を排除し、シンプルにする方法を示しただけです。
だから、もう疲れたし、そろそろ休まないと......寝る、ですね。
こんにちは!Expert Advisorのインジケーターウィンドウの機能について教えてください。
こんにちは!Expert Advisorのどのような機能でインジケータウィンドウを作ることができるのですか?
Expert Advisorから空のインジケータを呼び出します。
専門家から空のインジケータを呼び出す。
ありがとうございました。
必要なコードはこちらで ご確認ください
こんにちは!私は最後のオープン売り注文の価格を決定する関数を取った
しかし、それをEAに貼り付けると、'sy'関数の条件でコンパイルエラーが発生します - unexpected token
=' - 想定外のトークン 252 18
必要なL値 1 1
string' から 'number' への暗黙の変換 252 19
'=' - l-value required 252 18
'=' - 'void' 型の式は不正 252 18
'op' - 想定外のトークン 252 28
'=' - 想定外のトークン 252 30
必要なL値 1 1
'OP_SELL' - 不正な操作の使用 252 31
タイプ変換によるデータ損失の可能性 252 30
'=' - l-value required 252 30
'=' - 'void' 型の式は不正です 252 30
'mn' - 想定外のトークン 252 44
'=' - 想定外のトークン 252 46
必要なL値 1 1
1' - 不正な操作の使用 252 48
コピーしても何も変わらないので、アドバイスお願いします。
こんにちは!私は最後のオープン売り注文の価格を決定する関数を取った
しかし、EAに貼り付けると、'sy'関数の条件でコンパイルタイムエラーが発生します - unexpected token
=' - 想定外のトークン 252 18
必要なL値 1 1
string' から 'number' への暗黙の変換 252 19
'=' - l-value required 252 18
'=' - 'void' 型の式は不正 252 18
'op' - 想定外のトークン 252 28
'=' - 想定外のトークン 252 30
必要なL値 1 1
'OP_SELL' - 不正な操作の使用 252 31
タイプ変換によるデータ損失の可能性 252 30
'=' - l-value required 252 30
'=' - 'void' 型の式は不正です 252 30
'mn' - 想定外のトークン 252 44
'=' - 想定外のトークン 252 46
必要なL値 1 1
1' - 不正な操作の使用 252 48
コピーしても何も変わらないので、アドバイスお願いします。
関数の型を返す必要がある
すべて正しいはずです!? アドバイスをお願いします!コピーして何も変えて いません。
そして、関数のヘッダを コピーせず、関数のタイプ
この機能は本来、次のようなものです。
また、関数ヘッダを コピーせず、関数型をコピーしていた
この機能は本来、次のようなものです。
関数ヘッダーで、関数型をコピーしていないもの
この機能は本来、次のようなものです。
正しくは、例にはこうも書いてあった。私の理解が正しければ、注文の種類を選択することができ、私はそれを行いました。
'PriceS' - 関数はグローバルスコープでのみ宣言可能 252 10
関数はグローバルでなければならないと理解しました
翻訳機でエラーを翻訳すると、次のようになります。
そうなんです、例のところにも書いてあったんです。私の理解が正しければ、注文の種類を選択することが可能であり、私はそれを行いました。
'PriceS' - 関数はグローバルスコープでのみ宣言可能 252 10
関数はグローバルでなければならないと理解しました
翻訳者のエラーを翻訳すると
スタート機能の外側に機能を配置する
そして、start関数の本体で、次のように呼び出します。
3 パラメータ magik (カンマ区切り)。
スタート機能の外側に機能を配置する
start関数の本体では、このように呼び出します。
3 パラメータ magik (カンマ区切り)。
本当にありがとうございました!!!スタート関数の外に関数を置いた途端、全てのエラーが消えました!!!!