[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 59 1...525354555657585960616263646566...1145 新しいコメント 削除済み 2009.04.09 09:03 #581 xrust писал(а)>> 詳細レポートの名前を通常レポートに変更すればOKです この名前は具体的にどこで変更できるのか、難しいことでなければ教えていただけませんか?ユーザーヘルプには全く書かれていない。 Rustamzhan Salidzhanov 2009.04.09 09:17 #582 えー...困惑してますね...。 ファイル名を変更したことがないのか? 削除済み 2009.04.09 09:17 #583 専門家の皆様、私の質問を無視しないでください。 ボラティリティを日足などで カウントするような指標はないのでしょうか。しかし、0.34のような不定な数字を出すものはダメだ。しかし、1日あたりのローソク足の数を計算し、それを与えられた期間(日数)で割ることで、インジケータが平均値を知ることができるようにする必要があります。例:始値100、終値200、2日目-始値200、終値250。この2日間の平均ボラティリティ=((200-100)+(250-200))/2日=(100+50)/2=75 ダウンロードできる場合は、ダウンロード先。 削除済み 2009.04.09 09:33 #584 xrust писал(а)>> ええと...困ったなあ...。>> ファイル名を変更したことがないのですか? 端末は20分ごとに自動的にレポートを作成し、ftpサーバーに送信することになっています。この機能は、デフォルトで通常のレポートを保存します。端末のこの機能は、デフォルトでは通常のレポートを保存しますが、私は追加情報とグラフを含む詳細なレポートを希望します。手動で問題なく詳細レポートを保存でき、必要な履歴期間を選択することができます。 そして、まず私が困っているのは、自動 機能を整理するために、何を、どこで手動で リネームすればいいのか、ということです。全然クリアになってない。 Yug 2009.04.09 10:02 #585 https://forum.mql4.com/ru/10422 からの投稿を繰り返すと、おそらく私自身の質問はこちらの方が適切でしょう。 以下は、example.iniから 引用したコードの一部です。 [common] numCross=3 [cross1] name=EURUSD [cross2] name=GBPUSD [cross3] name=USDJPY ペアの数を読み取り、ペアの名前を1つずつ文字列の配列に保存します。 #include <IniFiles.mqh> extern string config_path = "C:\Program Files\MetaTrader - MetaQuotes\experts\example.ini"; string CrossName[]; int numCross=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { string sectionName = "common"; numCross = ReadIniInteger(config_path, sectionName, "numCross", 0); ArrayResize(CrossName, numCross); for (int i=0; i<numCross; i++) { sectionName = StringConcatenate("cross", i+1); CrossName[i] = ReadIniString(config_path, sectionName, "name", "-"); Print("init.1: CrossName[", (i+1), "]=", CrossName[i]); } Print("init.1: read complete"); for (i=0; i<numCross; i++) { Print("init.2: CrossName[", (i+1), "]=", CrossName[i]); } Print("-------------------------------"); for (i=0; i<numCross; i++) { sectionName = StringConcatenate("cross", i+1); CrossName[i] = StringSubstr(ReadIniString(config_path, sectionName, "name", "-"), 0, 0); Print("init.3: CrossName[", (i+1), "]=", CrossName[i]); } Print("init.3: read complete"); for (i=0; i<numCross; i++) { Print("init.4: CrossName[", (i+1), "]=", CrossName[i]); } return(0); } 簡単なようで、iniを読むと、ペア名の配列が得られるはずです。 しかし、その結果、iniから別のパラメータを読み込んで、配列の 別の要素に 値を代入した後。 は、以前に割り当てられた他のすべての要素が同じ値を取得します。 2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[2]=GBPUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[1]=EURUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.3: read complete 2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[2]=GBPUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[1]=EURUSD 2009.04.09 02:17:06 example GBPUSD,H4: ------------------------------- 2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[2]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[1]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.1: read complete 2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[3]=USDJPY 2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[2]=GBPUSD 2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[1]=EURUSD 文字列配列を変数に代入するときに、実は、その代入が 値ではなく、参照。全てのドキュメントとフォーラムを探しましたが、なぜそうなるのかの答えは見つかりませんでした。 StringSubstrを 使うことで解決しましたが、何かちょっと違うような気がします。 知っている人に質問:文字列配列の要素に他の 変数の値を正しく代入する方法は? [WARNING CLOSED!] Any newbie InternetOpenUrlA problem in MT4 DatabasePrepare TheXpert 2009.04.09 10:11 #586 Yug >> : https://forum.mql4.com/ru/10422 からの投稿を繰り返すと、おそらく私自身の質問はこちらの方が適切でしょう。 思い出した!文字列実装の特殊性。配列のサイズを変更した後、それを通過させ、ゼロにする必要があります。 ArrayResize( CrossName, numCross); for (int i=0; i< numCross; i++) { CrossName[ i] = ""; } 間違っているかもしれませんが、参考になるはずです。 Rustamzhan Salidzhanov 2009.04.09 10:44 #587 XinoXano писал(а)>> 端末は20分ごとに自動的にレポートを作成し、ftpサーバーに送信することになっています。この機能は、デフォルトで通常のレポートを保存します。端末のこの機能は、デフォルトでは通常のレポートを保存しますが、私は追加情報とグラフを含む項目別のレポートを希望します。手動で問題なく詳細レポートを保存でき、必要な履歴期間を選択することができます。 そして、まず私が困っているのは、自動 機能を整理するために、何を、どこで手動で リネームすればいいのか、ということです。全然クリアになってない。 Report templatesstatement.htm と detailed reportStatementDetailed.htm はterminaltemplates フォルダーにあります。デフォルトでは、ターミナルはプレーンなstatement.htm レポートを送信します。StatementDetailed.htmが 必要です。私はロシアで、Windows 環境のStatementDetailed.htmの ファイル名をstatement.htmに 変更することを提案しました。また、リネームに関するインストラクションも書いてください。 削除済み 2009.04.09 10:45 #588 専門家の皆様へ。 LOKingトランザクションについて教えてください。 詳細とコードはこちらLOKing of Positions(ポジションの喪失)に対処するのを助けてください。 常に敬意をもって。 削除済み 2009.04.09 10:58 #589 xrust писал(а)>> Report templatesstatement.htm, detailed reportStatementDetailed.htm はterminaltemplates フォルダにある。デフォルトでは、端末は通常のレポートstatement.htm を送信しますが、詳細なstatementDetailed.htm が必要です。私はロシア語で、Windows の ファイルStatementDetailed.htm をstatement.htm にリネームすることを提案しました。あるいはリネームも含めて説明書を書く? いいえ、私はできるようになりますが、別のテンプレートに1つのテンプレートを置き換えるために自分自身の名前を変更しない、それは私に発生しませんでした... ありがとうございました。これですべてがクリアになり、すべてが機能するようになりました!!!! 削除済み 2009.04.09 12:58 #590 Everlost >> : 非常に単純なことですが、Cls_SまたはCls_Bの信号が来たら、最後に開いたポジションを忘れます(Last_Position変数の値を-1に戻す)。 if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1; 理論上は問題ないのですが、Expert Advisorが完全に停止してしまいました( こんな感じで持っています。 //Учет ордеров истории int ORDtime=0; double ORDprofit=0.01; int ORDtype=-1; for (int j=OrdersHistoryTotal()-1; j>=0; j--) { if (OrderSelect( j, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==Symbol()) { if (OrderCloseTime()!=0 && OrderCloseTime()> ORDtime) { ORDtime=OrderCloseTime(); ORDtype=OrderType(); ORDprofit=OrderProfit(); } } } } ... //Торговые критерии на открытие и экстренное закрытие ордеров if (( ORDtype==-1)&&(...)) { Opn_B=true; } if (( ORDtype==-1)&&(...)) { Cls_B=true; } if (...) { Opn_S=true; } if (...) { Cls_S=true; } // Дополнительные условия к открытию if (( Cls_B==true|| Cls_S==true)&&( ORDtype>=0)) ORDtype=-1; //ДОПИСАТЬ УСЛОВИЕ ИСТОРИЧЕСКИХ ОРДЕРОВ は何かの間違いなのでしょうか? 1...525354555657585960616263646566...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
詳細レポートの名前を通常レポートに変更すればOKです
この名前は具体的にどこで変更できるのか、難しいことでなければ教えていただけませんか?ユーザーヘルプには全く書かれていない。
ボラティリティを日足などで カウントするような指標はないのでしょうか。しかし、0.34のような不定な数字を出すものはダメだ。しかし、1日あたりのローソク足の数を計算し、それを与えられた期間(日数)で割ることで、インジケータが平均値を知ることができるようにする必要があります。例:始値100、終値200、2日目-始値200、終値250。この2日間の平均ボラティリティ=((200-100)+(250-200))/2日=(100+50)/2=75
ダウンロードできる場合は、ダウンロード先。
ええと...困ったなあ...。>> ファイル名を変更したことがないのですか?
端末は20分ごとに自動的にレポートを作成し、ftpサーバーに送信することになっています。この機能は、デフォルトで通常のレポートを保存します。端末のこの機能は、デフォルトでは通常のレポートを保存しますが、私は追加情報とグラフを含む詳細なレポートを希望します。手動で問題なく詳細レポートを保存でき、必要な履歴期間を選択することができます。
そして、まず私が困っているのは、自動 機能を整理するために、何を、どこで手動で リネームすればいいのか、ということです。全然クリアになってない。
https://forum.mql4.com/ru/10422 からの投稿を繰り返すと、おそらく私自身の質問はこちらの方が適切でしょう。
以下は、example.iniから 引用したコードの一部です。
[common]
numCross=3
[cross1]
name=EURUSD
[cross2]
name=GBPUSD
[cross3]
name=USDJPY
ペアの数を読み取り、ペアの名前を1つずつ文字列の配列に保存します。
#include <IniFiles.mqh>
extern string config_path = "C:\Program Files\MetaTrader - MetaQuotes\experts\example.ini";
string CrossName[];
int numCross=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
string sectionName = "common";
numCross = ReadIniInteger(config_path, sectionName, "numCross", 0);
ArrayResize(CrossName, numCross);
for (int i=0; i<numCross; i++)
{
sectionName = StringConcatenate("cross", i+1);
CrossName[i] = ReadIniString(config_path, sectionName, "name", "-");
Print("init.1: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("init.1: read complete");
for (i=0; i<numCross; i++)
{
Print("init.2: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("-------------------------------");
for (i=0; i<numCross; i++)
{
sectionName = StringConcatenate("cross", i+1);
CrossName[i] = StringSubstr(ReadIniString(config_path, sectionName, "name", "-"), 0, 0);
Print("init.3: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("init.3: read complete");
for (i=0; i<numCross; i++)
{
Print("init.4: CrossName[", (i+1), "]=", CrossName[i]);
}
return(0);
}
簡単なようで、iniを読むと、ペア名の配列が得られるはずです。
しかし、その結果、iniから別のパラメータを読み込んで、配列の 別の要素に 値を代入した後。
は、以前に割り当てられた他のすべての要素が同じ値を取得します。
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[1]=EURUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.3: read complete
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[1]=EURUSD
2009.04.09 02:17:06 example GBPUSD,H4: -------------------------------
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[2]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[1]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.1: read complete
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[1]=EURUSD
文字列配列を変数に代入するときに、実は、その代入が
値ではなく、参照。全てのドキュメントとフォーラムを探しましたが、なぜそうなるのかの答えは見つかりませんでした。
StringSubstrを 使うことで解決しましたが、何かちょっと違うような気がします。
知っている人に質問:文字列配列の要素に他の 変数の値を正しく代入する方法は?
https://forum.mql4.com/ru/10422 からの投稿を繰り返すと、おそらく私自身の質問はこちらの方が適切でしょう。
思い出した!文字列実装の特殊性。配列のサイズを変更した後、それを通過させ、ゼロにする必要があります。
間違っているかもしれませんが、参考になるはずです。端末は20分ごとに自動的にレポートを作成し、ftpサーバーに送信することになっています。この機能は、デフォルトで通常のレポートを保存します。端末のこの機能は、デフォルトでは通常のレポートを保存しますが、私は追加情報とグラフを含む項目別のレポートを希望します。手動で問題なく詳細レポートを保存でき、必要な履歴期間を選択することができます。
そして、まず私が困っているのは、自動 機能を整理するために、何を、どこで手動で リネームすればいいのか、ということです。全然クリアになってない。
Report templatesstatement.htm と detailed reportStatementDetailed.htm はterminaltemplates フォルダーにあります。デフォルトでは、ターミナルはプレーンなstatement.htm レポートを送信します。StatementDetailed.htmが 必要です。私はロシアで、Windows 環境のStatementDetailed.htmの ファイル名をstatement.htmに 変更することを提案しました。また、リネームに関するインストラクションも書いてください。
専門家の皆様へ。
LOKingトランザクションについて教えてください。
詳細とコードはこちらLOKing of Positions(ポジションの喪失)に対処するのを助けてください。
常に敬意をもって。
Report templatesstatement.htm, detailed reportStatementDetailed.htm はterminaltemplates フォルダにある。デフォルトでは、端末は通常のレポートstatement.htm を送信しますが、詳細なstatementDetailed.htm が必要です。私はロシア語で、Windows の ファイルStatementDetailed.htm をstatement.htm にリネームすることを提案しました。あるいはリネームも含めて説明書を書く?
いいえ、私はできるようになりますが、別のテンプレートに1つのテンプレートを置き換えるために自分自身の名前を変更しない、それは私に発生しませんでした...
ありがとうございました。これですべてがクリアになり、すべてが機能するようになりました!!!!
非常に単純なことですが、Cls_SまたはCls_Bの信号が来たら、最後に開いたポジションを忘れます(Last_Position変数の値を-1に戻す)。
if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1;
理論上は問題ないのですが、Expert Advisorが完全に停止してしまいました(
こんな感じで持っています。
は何かの間違いなのでしょうか?