どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1154 1...114711481149115011511152115311541155115611571158115911601161...1178 新しいコメント Alexey Viktorov 2017.06.26 14:37 #11531 KhuKhu:こんにちは、友人たち。ストップロス、テクプロフィット、トレイリングの値をピップスではなくパーセントで表示させる方法。この数式はごちゃごちゃしすぎていて、まったく機能しない。StopLoss=NormalizeDouble(Bid-(Bid-TrailingStop)/100*TRAL_PERCENT,Digits)となります。一番シンプルな形のパーセンテージが欲しいです。ダブルストップロス=0.05。--------利益=ビッド-ストップロスのパーセンテージ(雑な例 ですが、わかりやすくするためです。)ありがとうございます。杜撰な例は杜撰な答えにつながる。それを理解するためには、何からその割合を測っているのかを理解する必要があります。 Vyacheslav Kornev 2017.06.26 15:25 #11532 Андрей Касторский:..必要な人は誰でも EAを 書くのに役立つ。 にメールしてください。お手伝いしますゼロバーからの価格を取るのに役立つ、以下は議論です。https://www.mql5.com/ru/forum/160683/page237#comment_5350688 KhuKhu 2017.06.26 17:36 #11533 Alexey Viktorov:薄っぺらい例は、薄っぺらい答えを生む。理解するには、パーセンテージが何に対してのものかを理解する必要があります。了解です。もっと分かりやすく説明します。私のコードは、もともと次のように書かれています。extern double StopLoss =0;extern double TakeProfit =0;extern double SL_PERCENT = 0.02;extern double TP_PERCENT = 0.03;extern double TRALL_PERCENT = 0.01;extern double Lots =0.5;チケット=OrderSend(Symbol()、OP_SELL、Lots、Bid、3、NormalizeDouble(OrderOpenPrice+(OrderOpenPrice + StopLoss)/100*SL_PERCENT、桁数)、NormalizeDouble(OrderOpenPrice - TakeProfit)/100*TP_PERCENT、桁数)、", Mag,0,Red).Ticket=OrderSend(Symbol()).Ticket=OrderSend(Lots).Ticket(Lots).Ticket(Lots).Ticket(OR),",",",";StopLossが発動されますが、0.02%ではなく、0.43%で発動され、これは誤りです。TakeProfitは試したことがないので分かりませんが、こちらも不正解のようです。コードが正しくないという指摘があります。もうひとつ、大事なことかもしれません。私のデポは3~4組分すべて注文が開かれています。時には5人で。また、StopLoss, Takeprofit, TrailingStopなどのパラメータをポイントではなく、パーセントで変更したいのですが。例えば、こんな感じです。 1) Takeprofit=OrderOnProfit+%TP_PERCENT(利益率)2) ストップロス=OrderOnPrice-%SL_PERCENTすなわちticket=OrderSend(Symbol(),OP_BUY,1,Ask,0,%,%,", Magic,0,clrGreen); トレーリングのためにさらに改造する方法がわからない。チュートリアルのサンプルを参考にしたのですが、明らかに間違っているようです。3.) TrailingStop=Bid-%TRALL_PERCENT(トレーリングストップ)。case 0: // 買い注文if (NormalizeDouble(OrderOpenPrice-SL*Point,Digits)*SL_PERCENT/100<=(OrderOpenPrice-Ask) // 以下なら。NormalizeDouble(ビッド-(ビッド-TS)/100*TRAL_PERCENT,ディジット)|| NormalizeDouble(SL,Digits)==0){SL=Bid-TS*Point; //次に修正するstring Text="Buy "; // BuyのテキストModify=true; // モディファイに割り当てられる。}本当に説明できていたのだろうか。ありがとうございます。 Any rookie question, so オジャラEA 初心者の方からの質問 MQL5 MT5 MetaTrader Maksim Zemskov 2017.07.07 02:49 #11534 取引開始(OrderSend)をローソク足の始まりに厳密に実装する方法 - OnTimerとOnTickの両方またはどちらか。ターミナルに過負荷をかけないため(20~30個のチャートを同時に開いて追跡する)?ローソク足開始時の新しいティックの出現が最大5~10秒遅れること、前のティックとのギャップが大きいこと(取引条件としてマイナス)を発見した。p.s. 同時にExpert Advisorでは、取引開始の1-2分前、つまりローソク足が始まる前に取引の可能性について通知することになっています。 Artyom Trishkin 2017.07.07 07:52 #11535 maxsoft:取引開始(OrderSend)をローソク足の始まりに厳密に実装する方法 - OnTimerとOnTickの両方またはどちらか。端末に負荷をかけないようにするため(20-30個のチャートを同時に開いて追跡する)?ローソク足開始時の新しいティックの出現の遅れは、前のティックと大きなギャップがあり、最大5-10秒になることが判明した(それは取引条件にとってマイナスである)p.s. この場合、Expert Advisorは取引開始の1-2分前、つまりローソク足が始まる前に取引の可能性を事前に通知することになっています。新しいバーが表示されるかどうかを確認するには、タイマーで開いているすべてのチャートを表示する必要があります。各オープン・チャートの各タイムフレームに1つずつ、クラスのインスタンスへのポインタの配列を作成する必要があります。新しいバーのオープンを監視するクラスは、こちらの記事で 紹介しています。チャートを開く - 開いているチャートの配列に追加する。チャートを閉じる - 配列から削除します。タイマー内のループでは、クラスのインスタンスへのポインタの配列を渡して、新しいバーが形成された場合にクラスが返す、新しいバーのオープンの事実をチェックします。 Maksim Zemskov 2017.07.07 09:58 #11536 Artyom Trishkin:新しいバーが表示されるかどうかを確認するには、タイマーで開いているすべてのチャートを表示する必要があります。クラスインスタンスへのポインタの配列を作成する必要があります ...MQL4を使うのはどうでしょうか?そして、「...取引開始の1~2分前、つまりローソク足が開く前に、取引の可能性を事前に通知することになっています」、つまり、バーの内側で行うことです 削除済み 2017.07.07 10:28 #11537 トピックへようこそ https://www.mql5.com/ru/forum/208120#comment_5412193コンセンサスが得られない。 Играем в блиц ЧТО? ГДЕ? КОГДА? 3 вопроса по 20 секунд 2017.07.07www.mql5.com Народ, подскажите пожалуйста, заморочился я тут по поводу AccountBalance() и AccountLeverage(). 1... Vladimir Tkach 2017.07.12 20:26 #11538 doubl型を表示する前に、小数点以下2桁に正規化するのですが、うまくいかないことがあります。なぜ?以下は、そのコードの一部です。prof[num]=(string)NormalizeDouble((double)prof[num]+(double)profit2,2);prof[]型は文字列そして、以下のように不具合が発生します。 Artyom Trishkin 2017.07.12 20:38 #11539 Vladimir Tkach:doubl型を表示する前に、小数点以下2桁に正規化するのですが、うまくいかないことがあります。なぜ?以下は、そのコードの一部です。prof[]型は文字列以下のような不具合が発生します。DoubleToString()DoubleToString数値からテキスト文字列に変換する。文字列DoubleToString( doublevalue,//numberintdigits=8//小数点以下の桁数);パラメータ価値[in] 値は浮動小数点数です。すうじ[in] 精度の形式。digitsの値が0から16の場合、小数点 以下の桁数を指定した文字列表現で数値を取得する。桁数が-1以上-16以下の場合は、小数点以下の桁数を指定した科学的形式による数値の文字列表現が得られます。それ以外の場合は、文字列表現で小数点以下8桁の数値となる。戻り値指定された精度形式での数値の文字表現を含む文字列。例Print("DoubleToString(120.0+M_PI) : ",DoubleToString(120.0+M_PI); Print("DoubleToString(120.0+M_PI,16) : ",DoubleToString(120.0+M_PI,16)"); Print("DoubleToString(120.0+M_PI,-16) : ",DoubleToString(120.0+M_PI,-16)"); Print("DoubleToString(120.0+M_PI,-1) : ",DoubleToString(120.0+M_PI,-1)"); Print("DoubleToString(120.0+M_PI,-20) : ",DoubleToString(120.0+M_PI,-20)"); Any rookie question, so MQL5で日次ドローダウンリミッターEAを作成する CCanvasでのカスタム指標とインフォグラフィックス igorbel 2017.07.13 19:55 #11540 何か不思議な虫とか。入力で追加しています。input datetime test =0; コンパイルします。日付1970.01.01ゼロの場合、設定で時間を00、01、02に設定することはできません。 1...114711481149115011511152115311541155115611571158115911601161...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは、友人たち。
ストップロス、テクプロフィット、トレイリングの値をピップスではなくパーセントで表示させる方法。
この数式はごちゃごちゃしすぎていて、まったく機能しない。
StopLoss=NormalizeDouble(Bid-(Bid-TrailingStop)/100*TRAL_PERCENT,Digits)となります。
一番シンプルな形のパーセンテージが欲しいです。
ダブルストップロス=0.05。
--------
利益=ビッド-ストップロスのパーセンテージ(雑な例 ですが、わかりやすくするためです。)
ありがとうございます。
杜撰な例は杜撰な答えにつながる。それを理解するためには、何からその割合を測っているのかを理解する必要があります。
..必要な人は誰でも EAを 書くのに役立つ。 にメールしてください。お手伝いします
ゼロバーからの価格を取るのに役立つ、以下は議論です。
https://www.mql5.com/ru/forum/160683/page237#comment_5350688
薄っぺらい例は、薄っぺらい答えを生む。理解するには、パーセンテージが何に対してのものかを理解する必要があります。
了解です。
もっと分かりやすく説明します。
私のコードは、もともと次のように書かれています。
extern double StopLoss =0;
extern double TakeProfit =0;
extern double SL_PERCENT = 0.02;
extern double TP_PERCENT = 0.03;
extern double TRALL_PERCENT = 0.01;
extern double Lots =0.5;
チケット=OrderSend(Symbol()、OP_SELL、Lots、Bid、3、NormalizeDouble(OrderOpenPrice+(OrderOpenPrice + StopLoss)/100*SL_PERCENT、桁数)、NormalizeDouble(OrderOpenPrice - TakeProfit)/100*TP_PERCENT、桁数)、", Mag,0,Red).Ticket=OrderSend(Symbol()).Ticket=OrderSend(Lots).Ticket(Lots).Ticket(Lots).Ticket(OR),",",",";
StopLossが発動されますが、0.02%ではなく、0.43%で発動され、これは誤りです。TakeProfitは試したことがないので分かりませんが、こちらも不正解のようです。
コードが正しくないという指摘があります。
もうひとつ、大事なことかもしれません。私のデポは3~4組分すべて注文が開かれています。時には5人で。
また、StopLoss, Takeprofit, TrailingStopなどのパラメータをポイントではなく、パーセントで変更したいのですが。
例えば、こんな感じです。
1) Takeprofit=OrderOnProfit+%TP_PERCENT(利益率)
2) ストップロス=OrderOnPrice-%SL_PERCENT
すなわち
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,0,%,%,", Magic,0,clrGreen);
トレーリングのためにさらに改造する方法がわからない。
チュートリアルのサンプルを参考にしたのですが、明らかに間違っているようです。
3.) TrailingStop=Bid-%TRALL_PERCENT(トレーリングストップ)。
case 0: // 買い注文
if (NormalizeDouble(OrderOpenPrice-SL*Point,Digits)*SL_PERCENT/100<=(OrderOpenPrice-Ask) // 以下なら。
NormalizeDouble(ビッド-(ビッド-TS)/100*TRAL_PERCENT,ディジット)
|| NormalizeDouble(SL,Digits)==0)
{
SL=Bid-TS*Point; //次に修正する
string Text="Buy "; // Buyのテキスト
Modify=true; // モディファイに割り当てられる。
}
本当に説明できていたのだろうか。
ありがとうございます。
取引開始(OrderSend)をローソク足の始まりに厳密に実装する方法 - OnTimerとOnTickの両方またはどちらか。
ターミナルに過負荷をかけないため(20~30個のチャートを同時に開いて追跡する)?
ローソク足開始時の新しいティックの出現が最大5~10秒遅れること、前のティックとのギャップが大きいこと(取引条件としてマイナス)を発見した。
p.s. 同時にExpert Advisorでは、取引開始の1-2分前、つまりローソク足が始まる前に取引の可能性について通知することになっています。
取引開始(OrderSend)をローソク足の始まりに厳密に実装する方法 - OnTimerとOnTickの両方またはどちらか。
端末に負荷をかけないようにするため(20-30個のチャートを同時に開いて追跡する)?
ローソク足開始時の新しいティックの出現の遅れは、前のティックと大きなギャップがあり、最大5-10秒になることが判明した(それは取引条件にとってマイナスである)
p.s. この場合、Expert Advisorは取引開始の1-2分前、つまりローソク足が始まる前に取引の可能性を事前に通知することになっています。
新しいバーが表示されるかどうかを確認するには、タイマーで開いているすべてのチャートを表示する必要があります。
各オープン・チャートの各タイムフレームに1つずつ、クラスのインスタンスへのポインタの配列を作成する必要があります。
新しいバーのオープンを監視するクラスは、こちらの記事で 紹介しています。
チャートを開く - 開いているチャートの配列に追加する。チャートを閉じる - 配列から削除します。
タイマー内のループでは、クラスのインスタンスへのポインタの配列を渡して、新しいバーが形成された場合にクラスが返す、新しいバーのオープンの事実をチェックします。
新しいバーが表示されるかどうかを確認するには、タイマーで開いているすべてのチャートを表示する必要があります。
クラスインスタンスへのポインタの配列を作成する必要があります ...
MQL4を使うのはどうでしょうか?
そして、「...取引開始の1~2分前、つまりローソク足が開く前に、取引の可能性を事前に通知することになっています」、つまり、バーの内側で行うことです
トピックへようこそ https://www.mql5.com/ru/forum/208120#comment_5412193
コンセンサスが得られない。
doubl型を表示する前に、小数点以下2桁に正規化するのですが、うまくいかないことがあります。なぜ?以下は、そのコードの一部です。
prof[]型は文字列
そして、以下のように不具合が発生します。
doubl型を表示する前に、小数点以下2桁に正規化するのですが、うまくいかないことがあります。なぜ?以下は、そのコードの一部です。
prof[]型は文字列
以下のような不具合が発生します。
DoubleToString()DoubleToString
数値からテキスト文字列に変換する。
文字列DoubleToString(
doublevalue,//number
intdigits=8//小数点以下の桁数
);
パラメータ
戻り値
例
Print("DoubleToString(120.0+M_PI) : ",DoubleToString(120.0+M_PI);
Print("DoubleToString(120.0+M_PI,16) : ",DoubleToString(120.0+M_PI,16)");
Print("DoubleToString(120.0+M_PI,-16) : ",DoubleToString(120.0+M_PI,-16)");
Print("DoubleToString(120.0+M_PI,-1) : ",DoubleToString(120.0+M_PI,-1)");
Print("DoubleToString(120.0+M_PI,-20) : ",DoubleToString(120.0+M_PI,-20)");
何か不思議な虫とか。
入力で追加しています。
input datetime test =0;