double tickvalue = MarketInfo(OrderSymbol(),MODE_POINT); //если нужно значение тика для инструмента в окне которого установлен эксперт, то просто используем Point в дальнейшем
Pips = (OrderOpenPrice()-Ask)/tickvalue; // order short
Pips = (Bid - OrderOpenPrice())/tickvalue; // order long
そうなんでしょうね。言ったでしょー、私はおバカさん、おバカさん...。上段の利益はpipsで表示され、3桁のみ表示されます。
私の理解では、EURUSDの場合、PipProfit=USDprofit/lot/Pointです。逆気配のペアの場合、開始価格と現在価格の差を取り、Digitsを掛ける必要があります:Pips = OrderOpenPrice()-Bid*Digits_coefficient; ここで
Digits_coefficient = MathPow(10,Digits);
。
差分を取らなくても、OrderProfit()関数がありますよ。
脳に定着させるために、もう一度おさらいしておきましょう。では、GBPJPYを買ってみましょう。
1.OrderProfit()は-15.27 USD = -1228.32 JPY(円への換算はUSDJPYレートを乗じる)に相当します。
2.利益をロットで割ると、0.1に相当します。
3.この結果を1ロット1ピップの価格で割ると、0.01円×100000=1000円に相当します。 その結果、-12.28ポイントとなり、必要な数値が得られました。
これは、同じ瞬間の数字ではないので微妙な誤差ですが、急激な円高が進んでいます。
XXXYYYの計算式。
pips = ( USDYYY または 1/YYYUSD ) * OrderProfit() / ( OrderLots( ) * Point ).
ここでPointはYYYY通貨で1ロットのポイント価格で、100000 * MathPow( 10, - Digits ) に相当します。
こんにちは。
EAが最適化されない理由は何でしょうか?
最適化されたパラメータは1つで、指標は標準的なものです。
テストは正常に行われています。
ヒントを教えてください。
スクリプトは、重なったオーダーをクローズする...しかし、なぜかロットサイズが異なる注文は決済されないという欠点が......。
どこが問題なのか、教えてください。
まず、チェックの方向を次のように置き換えます。
for(int i=1; i<=OrdersTotal(); i++) // オーダーをループします。
で
for(int i=OrdersTotal() - 1; i>=0; i--) // オーダーループ
どこにも
テスターではうまく動くのに一度も取引を開始しないEAがあるのはなぜですか? EAの名前は覚えていませんが、3つありました。もしかしたら何か間違っているのでしょうか? mt4
まあ、手始めに、チェック方向を
for(int i=1; i<=OrdersTotal(); i++) // オーダーループ
で
for(int i=OrdersTotal() - 1; i>=0; i++) // オーダーループ
どこにも
脚本が極めて不正確であったため、取り下げ...やることが多い...トレードをゼロに重ねるようにして欲しかったが...重なるだけだった...どうもありがとうございました...。...ゼロオーバーラップをしたら、質問用に掲載します。
数学、損益のpips数だけが必要ならもっと簡単な方法でできますよ、昨日書いたときはちょうど寝てました )))。
これらは、すべての通貨ペアに適した普遍的な公式であるように思われます。
.
皆さん、助けてください。
最後のXバーで価格が手首に触れたかどうかをチェックする関数が必要なのですが。
完全なお馬鹿さんなので、あまり強く蹴らないで下さいね。
Awesomeインジケーターを 1Hのみ書き換える 方法。4HにAwesomeを付けたとして、4Hではなく1Hに関連するデータをインジケータに表示させたい。
//DataWindowとインジケータサブウィンドウのラベルの名前
IndicatorShortName("AO");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL)です。
ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i) とする。
NULLをPeriodH1に変更しましたが、解決しません。
Awesomeインジケーターを1Hのみ書き換える方法。4HにAwesomeを付けたとして、4Hではなく1Hに関連するデータをインジケータに表示させたい。
//---- DataWindowとインジケータサブウィンドウのラベル名
IndicatorShortName("AO")。
SetIndexLabel(1,NULL)を設定。
SetIndexLabel(2,NULL)を設定。
ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i) となります。
NULLをPeriodH1に変更しましたが、解決しません。