OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,"ДИВЕРГЕНЦИЯ НА БАЙ АО"); // ОТКРЫВАЕМ БАЙ ОРДЕРOrderSend(Symbol(),OP_SELL,lot,Bid,slippages,Ask+sl,Ask-tp ,"ДИВЕРГЕНЦИЯ НА СЕЛ АО"); // ОТКРКЫВВАЕМ СЕЛ ОРДЕР
if(tip_sl==en_po_atr)
{ //ЕСЛИ ТИП СТОП ЛОССА СТОИТ ПО АТР ТО ВЫСЧИТЫВАЕМ ЕГО ИЗ АТР//Print("СТОП ПО АТР, ЕГО РАЗМЕР ");
sl= iATR( NULL,PeriodForWork_sl,atr_sl_period,1);// ПОЛУЧЕНИЕ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАPrint("СТОП ПО АТР, ЕГО РАЗМЕР "+sl);
}
else//ИНАЧЕ- ТО ЕСТЬ ЕСЛИ СТОП ЛОСС ФИКСИРОВАННЫЙ В ПУНКТАХ
{
Print("СТОП ЛОС ФИКСИРОВАННЫЙ В ПУНКТАХ");
sl= razmer_fikc_sl*Point; // ПЕЕРМЕННОЙ СТОП ЛОССА ПРИСВАЕВАЕМ ФИКСИРОВАНОНЕ ЗНАЧЕНИЕ ПУНКТОВ И ДОМНОЖАЕМ НА ПОИНТ
}
そして、正規化をコメントし、このように割り当てました。
sl = fabs(OrderOpenPrice()-OrderStopLoss())/_Point;// ПРИСВОИЛ ЗНАЧЕНИЕ КАК СОВЕТОВАЛИ//sl= NormalizeDouble(sl,Digits());// НОРМАЛИЗАЦИЯ ЗНАЧЕНИЯ СТОП ЛОССА ДЛЯ ОТКРЫТИЯ СДЕЛКИ ТО ЧТО БЫЛО ЗАКОМЕНТИРОВАЛ
すみません、こちらの会話に夢中になってしまい、気がつきませんでした...。
共通のテーマで、あなたのコードはいつも面白い...。
取ってつけたよう)
技術的な課題は、ウクライナ語の方がよく理解できる
私はまだそのレベルに達していません、私の母国語はロシア語です :)
...しかし、私はカジュアルなレベルでそれを理解しています。私はまだそのレベルには達していません、私の第一言語はロシア語です :)
私はソ連出身です。二つの母国語を持っています)
私はソ連出身です。二つの母国語を持っています)
で、3人、まだスルジークです。
私は数学が苦手なのですが、注文のオープンからストップまでの距離をコードでどのように計算すれば、slをこのコードに置き換えることができるのでしょうか?
ロット値を次のように正規化するつまり、建値からストップまでの距離をコードでどのように計算するかということが残っているのですね。
建値と 逆指値の差の絶対値を価格ステップで割る必要があります。
そして、この値slは数式に入ります。
ATRインジケータで計算したストップを置くことを考えると、十分に
そして、これはすでに正規化されたロットサイズになります。買い付け開始価格
ストップロスを買う
ひろがり
これで理解できたので、あとは買値と売値にどの値を割り当てるかを理解するだけです。
言い換えれば、私は買い建値にAskを割り当て、売り建値にFを割り当て、私はBidを割り当てるのですか?
コードでは、次のように注文を開いています。
買い建値にAskを、売り建値にBidを変数に代入するということでしょうか。
この機能から判断すると、すでにストップロスを知っているようですが・・・何が問題なのか理解できません。
始 値と終値の 差の絶対値を価格ステップで割る。
で、このsl値が数式に入ります。
ATRインジケータで計算したストップを置くことを考えると、十分に
そして、それが正規化されたロットサイズとなるのです。アドバイスいただいた通り、コードでやってみました。コードの最初に、ストップの種類(atpまたはfixed)を選択する条件を設けています。
そして、正規化をコメントし、このように割り当てました。
利益計算はコードの次です。 そこは問題なく、利益計算の後に、アドバイスされた怖い計算式を追加しました。
すべてエラーなくコンパイルされた。しかし、テストを実行すると、ログにエラーが表示され、ゼロによる除算が行われ、テストが停止してしまいます。どこで失敗したのか、何がいけなかったのか。