エキスパートアドバイザー - 雑多な質問 - ページ 32 1...252627282930313233343536373839...43 新しいコメント Max Enrik 2017.02.06 17:45 #311 ( このコメントを書く前に、私は解決策を見つけるために乱暴に調査したと思います、ええ、私は同様のスレッドを見つけましたが、私はこの問題の解決策を見つけられませんでした。)私は以下のコードを売り注文 に使い、ストップロスをpipsで表示します。ストップロスがプラスに変わるまで正しい値を表示します。 だから、私はこの問題を解決するために何かを試すことができますどのように私はアイデアを持っていません。何か良いコメントがあれば、お願いします。( 注意: 私は今のところトレーリングストップは使っていません。また、以下のコードは情報更新のためだけで、OrderSend()やそれに類するものではありません。)if(OrderType()==OP_SELL || (OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)) { riskinpips=change_to_pips(OrderStopLoss()-OrderOpenPrice()); }Print("stop loss in pips",DoubleToString(riskinpips,2));ありがとうございました。( 注意: 私の問題を説明するために写真編集プログラムで作成したスクリーンショットラベル ) Marco vd Heijden 2017.02.06 18:28 #312 最高値から最低値を引いたものが結果となるので、どれが最高値なのか確認 することができますif(OrderStopLoss()>OrderOpenPrice()) { // orderstoploss - orderopenprice }else if(OrderOpenPrice()>OrderStopLoss()) { // orderopenprice - orderstoploss } Max Enrik 2017.02.06 18:35 #313 Marco vd Heijden:最高値から最低値を引いたものが結果になるので、どれが最高値か確認することができます。 if(OrderStopLoss()>OrderOpenPrice()) { // orderstoploss - orderopenprice }else if(OrderOpenPrice()>OrderStopLoss()) { // orderopenprice - orderstoploss }決して気にしない自分を笑うだけです。これは、私の助けになると思います。すぐにでも試してみます。マルコ さん、ありがとうございました。 Max Enrik 2017.02.06 23:05 #314 #利益通貨計算 - 終了しました。今のところ完璧に動作しています。Marco vd Heijden と@whroeder1 に感謝します。 Max Enrik 2017.02.09 02:27 #315 #Time - オープン私は自分のEAのための時間/クロックについて研究し始めたので。私は、著者がそれのためにインジケータでstart()JUSTを使用しているのを見ます。 私のEAではOnTimer()とOnTick()を使っているので、start()は使いたくありません。 というわけで、Time and Clock機能にはどの特殊関数が 良いのか、確認/学習する必要があります。10時間後、この問題について研究を続けるつもりです。( 注:Mql5.com Codebase pageからいくつかのTime and Clock指標をすでに見つけました - しかし、私はコピー&ペーストするのが好きではありません )何か良いコメント、フォーラムの共有、リンクと何か他のものは私のために良いだろう。事前にありがとうございます。 Marco vd Heijden 2017.02.09 09:18 #316 開始関数は、スクリプトでのみ OnStartに 置き換えられます。エキスパートアドバイザーとインジケーターでは、それぞれOnTickと OnCalculateに 名前を変更する必要があります。mql5プログラムの動作中に実行されるコードは、これらの3つの関数に配置する必要があります。参照:https://www.mql5.com/en/docs/migration Documentation on MQL5: Moving from MQL4 www.mql5.com Moving from MQL4 - Reference on algorithmic/automated trading language for MetaTrader 5 Max Enrik 2017.02.09 10:33 #317 Marco vd Heijden:開始関数は、スクリプトでのみ OnStartに 置き換えられます。エキスパートアドバイザーとインジケーターでは、それぞれOnTickと OnCalculateに 名前を変更する必要があります。mql5プログラムの動作中に実行されるコードは、これらの3つの関数に配置する必要があります。 ありがとうございますそんなにもっと@Marco この共通は私のためにとても有益です。私はすでに "MQL4からMQL5への移行 "をお読みください。 honest_knave 2017.02.09 10:49 #318 Max Enrik:#Time - オープン私がEAの時間/クロックについて研究し始めたときから。私は、自分のEAの時間/時計について研究し始めたので、著者がそのためのインジケータでstart()を使用しているのを見ました。 私はEAでOnTimer()とOnTick()を使っているので、start()は使いたくありません。 というわけで、Time and Clock機能にはどの特殊関数が 良いのか、確認/学習する必要があります。10時間後、この問題について研究を続けるつもりです。( 注:Mql5.com Codebase pageからいくつかのTime and Clock指標をすでに見つけました - しかし、私はコピー&ペーストするのが好きではありません )何か良いコメント、フォーラムの共有、リンクと何か他のものは私のために良いだろう。事前にありがとうございます。OnTimer() を使用します。TimeLocal() を使用すると見栄えが良くなりますが、ブローカのタイムゾーンに同期しません。TimeCurrent() を使用すると、ブローカーと同期されますが、ティックの到着時刻によっては、数秒遅れることがありますし、「ジャンプ」することもあります。この例では、この問題を強調します。#property strictint OnInit() { EventSetTimer(1); return(INIT_SUCCEEDED); }void OnTimer() { Comment(StringFormat("%s - Local\n%s - Broker",TimeToString(TimeLocal(),TIME_SECONDS),TimeToString(TimeCurrent(),TIME_SECONDS))); } Max Enrik 2017.02.09 11:07 #319 #時間 - 終了honest_knave:OnTimer()を使用します。 TimeLocal() を使用すると見栄えが良くなりますが、ブローカのタイムゾーンに同期しません。 TimeCurrent() を使用すると、ブローカーと同期されますが、ティックの到着時刻によって数秒遅れることがあります。この例では、この問題を強調しています。#property strictint OnInit() { EventSetTimer(1); return(INIT_SUCCEEDED); }void OnTimer() { Comment(StringFormat("%s - Local\n%s - Broker",TimeToString(TimeLocal(),TIME_SECONDS),TimeToString(TimeCurrent(),TIME_SECONDS))); } 非常に有用なコメント です。本当にありがとうございます。 Max Enrik 2017.02.09 11:53 #320 取引、自動取引システム、取引戦略のテストに関するフォーラム エキスパートアドバイザー - 雑多な質問 honest_knave, 2016.11.30 01:28 IMHOは、OnChartEvent()と_lotCalc()に分けるのではなく、すべてのロット計算を一緒にしておくとよいでしょう。最小/最大/ステップをチェックし、インクリメント/デクリメントを行う関数を1つ。void OnChartEvent(const int id , // Event ID const long & lparam , // Parameter of type long event const double & dparam , // Parameter of type double event const string & sparam // Parameter of type string events ){ _lotCalc(); //-------Process Button---------------------------------------------------------| if ( sparam == _btnLotMinus ) { ObjectSetInteger( 0, sparam, OBJPROP_STATE, false ); _lotSize = fmax(_lotMin, _lotSize-_lotStep); _calcUpdade( CALC_CHANGE_LOT ); printf( " | Lot: %.2f ", _lotSize ); return; } //---if Close // ...}void _lotCalc(){ //--- _lotMin = SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_MIN ); _lotMax = SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_MAX ); _lotStep = SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP ); //---}#ロットステップ - リオープン@honest_knave- ロットサイズとロットステップについて最大の助けをありがとうございました。ロットサイズ >= ( ロットステップ * 100 ) " のとき、ロットステップが " ロットステップ * 100 " だけ増加するようにコードのこの部分を改良する必要があるんです。// lot plusif(sparam==lotbuttonplus) { if(lotsize>=(lotstep*100)) { lotstep=lotstep*100; Print("lot step: ",lotstep); } lotmaxdivide=lotmax/lotmax *(lotvalue*10); lotsize=fmin(lotmaxdivide,lotsize+(( ctrlfalse) ? lotstep*10 : lotstep));// global variable infoupdate(); printf("Lot: %.2f ",lotsize); ObjectSetInteger(0,sparam,OBJPROP_STATE,false); return; }事前に感謝します。 expert advisor - miscellaneous Adding, replacing, and removing Big Expert Advisor example 1...252627282930313233343536373839...43 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
( このコメントを書く前に、私は解決策を見つけるために乱暴に調査したと思います、ええ、私は同様のスレッドを見つけましたが、私はこの問題の解決策を見つけられませんでした。)
私は以下のコードを売り注文 に使い、ストップロスをpipsで表示します。ストップロスがプラスに変わるまで正しい値を表示します。
だから、私はこの問題を解決するために何かを試すことができますどのように私はアイデアを持っていません。
何か良いコメントがあれば、お願いします。
( 注意: 私は今のところトレーリングストップは使っていません。また、以下のコードは情報更新のためだけで、OrderSend()やそれに類するものではありません。)
{
riskinpips=change_to_pips(OrderStopLoss()-OrderOpenPrice());
}
Print("stop loss in pips",DoubleToString(riskinpips,2));
ありがとうございました。
![ストップロスで利益が出た場合 ストップロスで利益が出た場合](https://c.mql5.com/3/116/When_Stop_Loss_in_Positive_Profit.png)
( 注意: 私の問題を説明するために写真編集プログラムで作成したスクリーンショットラベル )最高値から最低値を引いたものが結果となるので、どれが最高値なのか確認 することができます
{
// orderstoploss - orderopenprice
}
else if(OrderOpenPrice()>OrderStopLoss())
{
// orderopenprice - orderstoploss
}
最高値から最低値を引いたものが結果になるので、どれが最高値か確認することができます。
{
// orderstoploss - orderopenprice
}
else if(OrderOpenPrice()>OrderStopLoss())
{
// orderopenprice - orderstoploss
}
決して気にしない自分を笑うだけです。これは、私の助けになると思います。すぐにでも試してみます。
マルコ さん、ありがとうございました。
#利益通貨計算 - 終了しました。
今のところ完璧に動作しています。
Marco vd Heijden と@whroeder1 に感謝します。
#Time - オープン
私は自分のEAのための時間/クロックについて研究し始めたので。私は、著者がそれのためにインジケータでstart()JUSTを使用しているのを見ます。
私のEAではOnTimer()とOnTick()を使っているので、start()は使いたくありません。
というわけで、Time and Clock機能にはどの特殊関数が 良いのか、確認/学習する必要があります。
10時間後、この問題について研究を続けるつもりです。
( 注:Mql5.com Codebase pageからいくつかのTime and Clock指標をすでに見つけました - しかし、私はコピー&ペーストするのが好きではありません )
何か良いコメント、フォーラムの共有、リンクと何か他のものは私のために良いだろう。
事前にありがとうございます。
開始関数は、スクリプトでのみ OnStartに 置き換えられます。エキスパートアドバイザーとインジケーターでは、それぞれOnTickと OnCalculateに 名前を変更する必要があります。mql5プログラムの動作中に実行されるコードは、これらの3つの関数に配置する必要があります。
参照:https://www.mql5.com/en/docs/migration
開始関数は、スクリプトでのみ OnStartに 置き換えられます。エキスパートアドバイザーとインジケーターでは、それぞれOnTickと OnCalculateに 名前を変更する必要があります。mql5プログラムの動作中に実行されるコードは、これらの3つの関数に配置する必要があります。
#Time - オープン
私がEAの時間/クロックについて研究し始めたときから。私は、自分のEAの時間/時計について研究し始めたので、著者がそのためのインジケータでstart()を使用しているのを見ました。
私はEAでOnTimer()とOnTick()を使っているので、start()は使いたくありません。
というわけで、Time and Clock機能にはどの特殊関数が 良いのか、確認/学習する必要があります。
10時間後、この問題について研究を続けるつもりです。
( 注:Mql5.com Codebase pageからいくつかのTime and Clock指標をすでに見つけました - しかし、私はコピー&ペーストするのが好きではありません )
何か良いコメント、フォーラムの共有、リンクと何か他のものは私のために良いだろう。
事前にありがとうございます。
OnTimer() を使用します。
TimeLocal() を使用すると見栄えが良くなりますが、ブローカのタイムゾーンに同期しません。
TimeCurrent() を使用すると、ブローカーと同期されますが、ティックの到着時刻によっては、数秒遅れることがありますし、「ジャンプ」することもあります。この例では、この問題を強調します。
int OnInit()
{
EventSetTimer(1);
return(INIT_SUCCEEDED);
}
void OnTimer()
{
Comment(StringFormat("%s - Local\n%s - Broker",TimeToString(TimeLocal(),TIME_SECONDS),TimeToString(TimeCurrent(),TIME_SECONDS)));
}
#時間 - 終了
OnTimer()を使用します。
TimeLocal() を使用すると見栄えが良くなりますが、ブローカのタイムゾーンに同期しません。
TimeCurrent() を使用すると、ブローカーと同期されますが、ティックの到着時刻によって数秒遅れることがあります。この例では、この問題を強調しています。
int OnInit()
{
EventSetTimer(1);
return(INIT_SUCCEEDED);
}
void OnTimer()
{
Comment(StringFormat("%s - Local\n%s - Broker",TimeToString(TimeLocal(),TIME_SECONDS),TimeToString(TimeCurrent(),TIME_SECONDS)));
}
取引、自動取引システム、取引戦略のテストに関するフォーラム
エキスパートアドバイザー - 雑多な質問
honest_knave, 2016.11.30 01:28
IMHOは、OnChartEvent()と_lotCalc()に分けるのではなく、すべてのロット計算を一緒にしておくとよいでしょう。最小/最大/ステップをチェックし、インクリメント/デクリメントを行う関数を1つ。
const long & lparam , // Parameter of type long event
const double & dparam , // Parameter of type double event
const string & sparam // Parameter of type string events
)
{
_lotCalc();
//-------Process Button---------------------------------------------------------|
if ( sparam == _btnLotMinus )
{
ObjectSetInteger( 0, sparam, OBJPROP_STATE, false );
_lotSize = fmax(_lotMin, _lotSize-_lotStep);
_calcUpdade( CALC_CHANGE_LOT );
printf( " | Lot: %.2f ", _lotSize );
return;
} //---if Close
// ...
}
void _lotCalc()
{
//---
_lotMin = SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_MIN );
_lotMax = SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_MAX );
_lotStep = SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP );
//---
}
#ロットステップ - リオープン
@honest_knave- ロットサイズとロットステップについて最大の助けをありがとうございました。
ロットサイズ >= ( ロットステップ * 100 ) " のとき、ロットステップが " ロットステップ * 100 " だけ増加するようにコードのこの部分を改良する必要があるんです。
if(sparam==lotbuttonplus)
{
if(lotsize>=(lotstep*100))
{
lotstep=lotstep*100;
Print("lot step: ",lotstep);
}
lotmaxdivide=lotmax/lotmax *(lotvalue*10);
lotsize=fmin(lotmaxdivide,lotsize+(( ctrlfalse) ? lotstep*10 : lotstep));
// global variable
infoupdate();
printf("Lot: %.2f ",lotsize);
ObjectSetInteger(0,sparam,OBJPROP_STATE,false);
return;
}
事前に感謝します。