エキスパートアドバイザー - 雑多な質問 - ページ 31 1...242526272829303132333435363738...43 新しいコメント honest_knave 2017.02.02 11:33 #301 Max Enrik: if(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0)) { ticketnumber=(int) StringSubstr(sparam,1); Print(ticketnumber);チケット番号を印刷する - 見た目が正しいことを確認する。-----マックス・エンリック: if(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0)) { ticketnumber=(int) StringSubstr(sparam,1); if(OrderSelect(ticketnumber,SELECT_BY_TICKET)) { if(StringFind(sparam,Button_1,0)>=0) { // ... } if(StringFind(sparam,Button_2,0)>=0) { //... } for(i=OrdersTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(Symbol()!=OrderSymbol()) continue; update_1(); update_2(); update_3(); } } else printf("OrderSelect failed for %i",ticketnumber); }オーダーセレクトが機能しているか確認 する-----マックス・エンリックif(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0)) { ticketnumber=(int) StringSubstr(sparam,1); if(OrderSelect(ticketnumber,SELECT_BY_TICKET)) { if(StringFind(sparam,Button_1,0)>=0) { // ... } if(StringFind(sparam,Button_2,0)>=0) { //... } for(i=OrdersTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(Symbol()!=OrderSymbol()) continue; update_1(); update_2(); update_3(); } } }よくわからないんだけどこれは同じSymbolを持つ全てのオーダーを調べ、update_1() update_2() update_3() を実行するんだろう?ticketnumberで見つけた注文だけではありません。 Max Enrik 2017.02.02 12:38 #302 honest_knave:チケット番号を印刷してください。----- OrderSelectが動作していることを確認します。----- これは理解できない これは同じSymbolを持つ全てのオーダーを調べ、update_1() update_2() update_3() を実行するんだろう?ticketnumberで見つけたオーダーだけでなく。早速のコメントありがとうございます。 コメントいただいた後、もう一度確認しました。良さそうです。#1 - チケット番号 - 正しい。#2 - OrderSelect()は動作します。#3 - そうです!おっしゃる通りですが、これを使わないとupdate_*()が機能しません。私はその方法をドラッグに使い、その方法はうまく機能します。しかし、その方法はCHARTEVENT_OBJECT_CLICKでは うまくいきません。(単一注文の時はうまくいく。反対注文を出すとうまくいく。))本当に助けが必要です、お願いします。 honest_knave 2017.02.02 12:42 #303 どうしたいのか、スクリーンショットを見せてください。問題が明確でない。 Max Enrik 2017.02.02 12:44 #304 honest_knave: 起こしたいことのスクリーンショットを見せてください。問題がよくわからないのですが。スクリーンショットを作っている間に、解決策を見つけました。(すでに2時間以上かかっています。) ということで、今のところ問題なさそうですが、もし何か問題があれば、もっとはっきりしたコメントを書くつもりです。お時間をいただきありがとうございました。( 本当に不思議な感じでした。 ) honest_knave 2017.02.02 13:04 #305 Max Enrik:スクリーンショットを作っている間に、解決策を見つけました。( このためにすでに2時間以上を費やしました) それで、今のところ良さそうです。もし何か問題があれば、もっとはっきりしたコメントを書きます。お時間をいただきありがとうございました。( あれは本当に不思議でした。) 直ってよかったですね Max Enrik 2017.02.03 16:41 #306 #通貨建て利益計算 - Open私はちょうど私が通貨で利益を計算 することができるという解決策を見つけるために始めた。Q: 注文の利益(pips)を注文の利益(通貨)に変換する方法を教えてください。(マーケットクローズまで解決策が見つからないのが心配です。)どんな明確なコメントでも結構です。よろしくお願いします。//--- 2回目の編集 私は多くの同様のフォーラムを見つけましたが、私はこのタイプのトピックを見つけることができません。 Marco vd Heijden 2017.02.03 20:19 #307 pipsで利益を得るには?OrderProfit()返される値 選択された注文 の純利益値(スワップや手数料を含まない)です。 未決済注文の場合、それは現在の未実現利益です。 クローズド・オーダーの場合は、確定利益となります。 Max Enrik 2017.02.04 22:55 #308 Marco vd Heijden:pipsで利益を得るには?OrderProfit()返される値 選択された注文 の純利益値(スワップや手数料を含まない)です。 未決済注文の場合、それは現在の未実現利益です。 クローズド・オーダーの場合、それは確定利益です。コメントありがとうございます。すみません、Marcoさん、私の問題をもっと明確に説明していませんでした。 私は以下のコードで簡単にPipsと通貨で注文利益を得ることができます。DoubleToString( OrderProfit(), 2 )DoubleToString( change_to_points( Bid - OrderOpenPrice() ), 0 );しかし、私は通貨でのストップロスとテイクプロフィットのためのソリューションを見つけることを試みる。私はそれに取り組んでいる、私はまだ助けを必要とする、お願いします。よろしくお願いします。 William Roeder 2017.02.05 01:01 #309 Max Enrik: ストップロスとテイクプロフィットを通貨建てで行う場合の解決策を考えてみました。 OrderStopLossを これらのいずれかに置き換えてください。 ストップを置くべき場所、つまり取引の理由がもはや有効でない場所に置くのです。例:サポートバウンドを取引する場合、ストップはサポートより下になります。 口座残高 * パーセント/100 = リスク = OrderLots * (|OrderOpenPrice - OrderStopLoss| *DeltaPerLot+ CommissionPerLot) (OOP-OSL には SPREAD が含まれ、DeltaPerLot は通常約 $10/pip ですが、ペアと口座通貨の為替レートを考慮します). TickValueを単独で使用しないでください -DeltaPerLot ロットを正しく正規化 し、最小値と最大値を チェックする必要があります。 ストップ・アウトを 避けるために、FreeMarginもチェックしなければなりません。 SLと口座リスクに基づいたマネーマネジメントのLOTサイズ計算式が必要! MODE_SPREAD 1ピップあたりの価格 Max Enrik 2017.02.05 09:42 #310 whroeder1: OrderStopLossで 代用してください。 ストップを置くべき場所、つまり取引の理由がもはや有効でない場所に置くのです。例:サポートバウンドを取引する場合、ストップはサポートより下になります。 口座残高 * パーセント/100 = リスク = OrderLots * (|OrderOpenPrice - OrderStopLoss| *DeltaPerLot+ CommissionPerLot) (OOP-OSL には SPREAD が含まれ、DeltaPerLot は通常約 $10/pip ですが、ペアと口座通貨の為替レートを考慮します). TickValueを単独で使用しないでください -DeltaPerLot ロットを正規化 し、最小値と最大 値をチェックする必要があります。 ストップ・アウトを 避けるために、FreeMarginもチェックする必要があります。 より有益なコメントありがとうございます。 勉強中です・・・。//--- 2回目の編集コードの知識不足で、あなたの計算方法を理解することはできないかもしれません。 しかし、私は解決策に近いと思います。そして、私が取得した以下のコードを試してみました(買い注文の場合)ストップロスを通貨で表示します。 すると、このような結果が出ました。利益。7.67 USD - Pips:1001 / USDCADの場合。しかし、実際には利益: 7.69 USD。(私はすでにチェックアウトしました(スワップと手数料)。double tickvalue = MarketInfo( Symbol(), MODE_TICKVALUE ) / MarketInfo( Symbol(), MODE_TICKSIZE ), buy_stoploss_incurrency = OrderOpenPrice() - OrderStopLoss();string stoploss_incurrency = DoubleToString( OrderLots() * buy_stoploss_incurrency * tickvalue + OrderCommission(), 2 );Print( "stop loss in currency: ", stoploss_incurrency );ということで、アドバイスお願いします。ありがとうございました。//--- 3回目の編集コーダーまたはプログラマーの方、上記のコードが正しいかどうか教えてください。なぜなら、GBPCHFでは正しいストップロスが表示されますが、USDCADでは正しく表示されないからです。何が間違っているのかわかりません。( 注:USDCADはオープンポジションですが、GBPCHFはペンディングオーダーです。)今のところ全てOKです。それで、William氏に感謝します。 expert advisor - miscellaneous 初心者の方からの質問 MQL4 MT4 MetaTrader どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 1...242526272829303132333435363738...43 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
if(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0))
{
ticketnumber=(int) StringSubstr(sparam,1);
Print(ticketnumber);
チケット番号を印刷する - 見た目が正しいことを確認する。
-----
if(id==CHARTEVENT_OBJECT_CLICK && (StringFind(sparam,Button_1,0)>=0 || StringFind(sparam,Button_2,0)>=0))
}{
ticketnumber=(int) StringSubstr(sparam,1);
if(OrderSelect(ticketnumber,SELECT_BY_TICKET))
{
if(StringFind(sparam,Button_1,0)>=0)
{
// ...
}
if(StringFind(sparam,Button_2,0)>=0)
{
//...
}
for(i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if(Symbol()!=OrderSymbol()) continue;
update_1();
update_2();
update_3();
}
}
else printf("OrderSelect failed for %i",ticketnumber);
オーダーセレクトが機能しているか確認 する
-----
{
ticketnumber=(int) StringSubstr(sparam,1);
if(OrderSelect(ticketnumber,SELECT_BY_TICKET))
{
if(StringFind(sparam,Button_1,0)>=0)
{
// ...
}
if(StringFind(sparam,Button_2,0)>=0)
{
//...
}
for(i=OrdersTotal()-1; i>=0; i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if(Symbol()!=OrderSymbol()) continue;
update_1();
update_2();
update_3();
}
}
}
よくわからないんだけど
これは同じSymbolを持つ全てのオーダーを調べ、update_1() update_2() update_3() を実行するんだろう?ticketnumberで見つけた注文だけではありません。
チケット番号を印刷してください。
-----
OrderSelectが動作していることを確認します。
-----
これは理解できない
これは同じSymbolを持つ全てのオーダーを調べ、update_1() update_2() update_3() を実行するんだろう?ticketnumberで見つけたオーダーだけでなく。
早速のコメントありがとうございます。
コメントいただいた後、もう一度確認しました。良さそうです。
#1 - チケット番号 - 正しい。
#2 - OrderSelect()は動作します。
#3 - そうです!おっしゃる通りですが、これを使わないとupdate_*()が機能しません。
私はその方法をドラッグに使い、その方法はうまく機能します。しかし、その方法はCHARTEVENT_OBJECT_CLICKでは うまくいきません。(単一注文の時はうまくいく。反対注文を出すとうまくいく。))
本当に助けが必要です、お願いします。
起こしたいことのスクリーンショットを見せてください。問題がよくわからないのですが。
スクリーンショットを作っている間に、解決策を見つけました。(すでに2時間以上かかっています。)
ということで、今のところ問題なさそうですが、もし何か問題があれば、もっとはっきりしたコメントを書くつもりです。
お時間をいただきありがとうございました。
( 本当に不思議な感じでした。 )
スクリーンショットを作っている間に、解決策を見つけました。( このためにすでに2時間以上を費やしました)
それで、今のところ良さそうです。もし何か問題があれば、もっとはっきりしたコメントを書きます。
お時間をいただきありがとうございました。
( あれは本当に不思議でした。)
#通貨建て利益計算 - Open
私はちょうど私が通貨で利益を計算 することができるという解決策を見つけるために始めた。
Q: 注文の利益(pips)を注文の利益(通貨)に変換する方法を教えてください。
(マーケットクローズまで解決策が見つからないのが心配です。)
どんな明確なコメントでも結構です。
よろしくお願いします。
//--- 2回目の編集
私は多くの同様のフォーラムを見つけましたが、私はこのタイプのトピックを見つけることができません。
pipsで利益を得るには?
返される値
選択された注文 の純利益値(スワップや手数料を含まない)です。
未決済注文の場合、それは現在の未実現利益です。
クローズド・オーダーの場合は、確定利益となります。
pipsで利益を得るには?
返される値
選択された注文 の純利益値(スワップや手数料を含まない)です。
未決済注文の場合、それは現在の未実現利益です。
クローズド・オーダーの場合、それは確定利益です。
コメントありがとうございます。
すみません、Marcoさん、私の問題をもっと明確に説明していませんでした。
私は以下のコードで簡単にPipsと通貨で注文利益を得ることができます。
DoubleToString( change_to_points( Bid - OrderOpenPrice() ), 0 );
しかし、私は通貨でのストップロスとテイクプロフィットのためのソリューションを見つけることを試みる。
私はそれに取り組んでいる、私はまだ助けを必要とする、お願いします。
よろしくお願いします。
より有益なコメントありがとうございます。
勉強中です・・・。
//--- 2回目の編集
コードの知識不足で、あなたの計算方法を理解することはできないかもしれません。
しかし、私は解決策に近いと思います。そして、私が取得した以下のコードを試してみました(買い注文の場合)ストップロスを通貨で表示します。
すると、このような結果が出ました。利益。7.67 USD - Pips:1001 / USDCADの場合。しかし、実際には利益: 7.69 USD。(私はすでにチェックアウトしました(スワップと手数料)。
buy_stoploss_incurrency = OrderOpenPrice() - OrderStopLoss();
string stoploss_incurrency = DoubleToString( OrderLots() * buy_stoploss_incurrency * tickvalue + OrderCommission(), 2 );
Print( "stop loss in currency: ", stoploss_incurrency );
ということで、アドバイスお願いします。
ありがとうございました。
//--- 3回目の編集
コーダーまたはプログラマーの方、上記のコードが正しいかどうか教えてください。なぜなら、GBPCHFでは正しいストップロスが表示されますが、USDCADでは正しく表示されないからです。何が間違っているのかわかりません。( 注:USDCADはオープンポジションですが、GBPCHFはペンディングオーダーです。)
今のところ全てOKです。それで、William氏に感謝します。