//--- counting from 0 to rates_totalArraySetAsSeries(ExtLineBuffer,false);
ArraySetAsSeries(close,false);
//--- first calculation or number of bars was changed
int Ticket1_RSI=-1, Ticket2_RSI=-1; // Номера открытых ордеровexterndouble Lot=0.01; // Объем лотаint RSI() // Функция RSI
{
double T, P;
double RSI_0, RSI_1, RSI_2; // Значения индикатора RSI//------------------Значения индикатора---------------------------------------
RSI_0=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 0); // Получаем данные от RSI
RSI_1=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 1); // Получаем данные от RSI
RSI_2=iRSI(Symbol(), 0, 14, PRICE_CLOSE, 2); // Получаем данные от RSI //------------------Условие на продажу--------------------------------- if (RSI_1 > RSI_0 > 70 && RSI_1 > RSI_2) // Если индикатор превышает значение 70 и виден поворот вниз
{
if (Ticket2_RSI > 0) // Если имеется ордер на покупку
OrderClose(Ticket2_RSI, OrderLots(), Bid, 0, 0); // Закрытие ордера на покупкуif (Ticket1_RSI <= 0) // Если ордера на продажу нет
{
Ticket1_RSI=OrderSend(Symbol(), OP_SELL, Lot, Bid, 2, 0, 0); // Открытие ордера на продажуif (OrderSelect(Ticket1_RSI, SELECT_BY_TICKET)==true)
{
T=OrderOpenTime();
P=OrderOpenPrice();
ObjectCreate("Arrow", 22, 0, T, P); // Создание индикатора ордера
ObjectSet("Arrow", OBJPROP_COLOR, IndianRed); // Изменение цвета в мутно-красноватый
ObjectSet("Arrow", OBJPROP_ARROWCODE, 242); // Направление стрелки внизObjectCreate("Text", 21, 0, T, P); // Создание текстового объекта
ObjectSetText("Text", "Open sell-order by RSI", 6, "Times New Roman", Navy); // Текст, шрифт, стиль, цвет
}
}
}
//-------------------Условие на покупку-------------------------------- if (RSI_1 < RSI_0 < 30 && RSI_1 < RSI_2) // Если индикатор ниже значения 30 и виден поворот вверх
{
if (Ticket1_RSI > 0) // Если имеется ордер на продажу
OrderClose(Ticket1_RSI, OrderLots(), Ask, 0, 0); // Закрытие ордера на продажуif (Ticket2_RSI <= 0) // Если ордера на продажу нет
{
Ticket2_RSI=OrderSend(Symbol(), OP_BUY, Lot, Ask, 2, 0, 0); // Открытие ордера на покупкуif (OrderSelect(Ticket2_RSI, SELECT_BY_TICKET)==true)
{
T=OrderOpenTime();
P=OrderOpenPrice();
ObjectCreate("Arrow", 22, 0, T, P); // Создание индикатора ордера
ObjectSet("Arrow", OBJPROP_COLOR, LawnGreen); // Изменение цвета в ярко-зеленый
ObjectSet("Arrow", OBJPROP_ARROWCODE, 241); // Направление стрелки вверхObjectCreate("Text", 21, 0, T, P); // Создание текстового объекта
ObjectSetText("Text", "Open buy-order by RSI", 6, "Times New Roman", Navy); // Текст, шрифт, стиль, цвет
}
}
}
//-------------------------------------------------------------------- return;
}
このような場合、コードに追加する必要があります。Appled_Priceのような外部変数を作成します。
そして、コード内のPRICE_CLOSEを全てAppled_Priceに変更します。
あ、はい、すみません、新しいビルドのことです、ちょっと変わったコードがあるんです。
それが、このコードには自由形式の価格がなく、すべて配列になっているため、どうしても変更できないのです、試してみました((
また、うまくいったとして、ドロップダウン・リストから選択する方法(私の質問の写真のような)は?
それこそ、コードにタダの値段はないんだから、差し替えればいいじゃん((
こちらをご覧ください
closeをopenに変更します。もし、openでカウントし始めたら、この値を変更するには、この方向で掘ってください。今ベータターミナルを起動してそのエディタを覗くことができないのです。
あらかじめ、ここの値を変更してください。
皆様へのご挨拶))
EAを書いた のですが、全く動かない))) もしくは正しく動作しないのです。
ここでは、RSIインジケータに基づく取引判断の計算の断片を示します。
//--------------------Данные------------------------------------
EAは、インジケータの値にもかかわらず、すぐに買い注文を開き、それを閉じようとしないことです。文字や矢印などのオブジェクトが表示されない。
このことを理解するのを助けてください)) ちょうど私自身がこれをするのは初めてです。
皆様へのご挨拶))
EAを書いたのですが、全く動かない))) もしくは正しく動作しないのです。
ここでは、RSIインジケータに基づく取引判断の計算の断片を示します。
//--------------------Данные------------------------------------
EAは、インジケータの値にもかかわらず、すぐに買い注文を開き、それを閉じようとしないことです。文字や矢印などのオブジェクトが表示されない。
このことを理解するのを助けてください)) ちょうど私自身がこれをするのは初めてです。
では、それぞれの不等式を条件に分けて書かなければならないのですか? 何らかの方法で一般化すると、エラーとみなされるのですか? では、なぜプログラムはコンパイル時にエラーはないと言っているのですか?
では、各不等式を条件に分けて書かないといけないのですか? 何とか一般化するとエラーとして認識されるのですか? では、なぜプログラムはコンパイル時にエラーはないと言っているのですか?
エラーはなく、期待する結果が得られないだけです。
...こんなとき、どうやって原因を探せばいいのでしょうか?
純粋に偶然に出会いました。物事を単純化することが必要です。すべてをコメントアウトし、最初のimportを アンコメントし、コンパイルし、関数を呼び出す、など。
CloseをOpenに変えてもほとんど変化がないので意味がない。そんなくだらないことに煩わされず、形成されたバーからデータを取る方が簡単です。
エラーは発生しませんが、期待していた結果が得られないだけです。
私はそれを理解した))1つの注文は、私が行にSymbol()の代わりにNULLを書かなければならなかったので、それ以上の変更なしに直ちに開かれた。
Symbol() の代わりにNULLと書かないといけないのは、変数の型にズレがあるからです。 このため、RSIをNULL値として見てしまい、条件がうまくいったので、すぐに開いてしまったんです。
現在は修正し、すべてうまくいっています。
唯一の問題は、オブジェクトが最初の取引で一度だけ作成されることです。