MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 191 1...184185186187188189190191192193194195196197198...1953 新しいコメント Rustam Bikbulatov 2017.05.01 22:31 #1901 Vitaly Muzichenko:行をコメントアウトして、1つの関数を動作させてみてください。 おぼえていると面白い) Vitaly Muzichenko 2017.05.01 23:19 #1902 Rustam Bikbulatov: おぼえていると面白い) 何も知らなくても、コードに書いてありますよ。 Maxim Kuznetsov 2017.05.02 00:27 #1903 Rustam Bikbulatov:また、こんにちは。既知のプログラマーのコードを変更する方法を教えてください。現在、このフクロウは1秒間に約1回の取引を成立させています。プラス・マイナスに関係なく、一定の利益を超えたら即座に取引を終了するように変更したいです。ログにエラーメッセージが書き込まれていませんか?ClosePosBySelect内部の遅延をより合理的な値に減らすことはできませんか?そこでは、各オーダーを閉じるために何度も試行錯誤が行われ、失敗した場合は毎回Sleepが 表示されます。ところで、エラーからのリカバリはもっと良い方法で行えます(これらの関数が作られた瞬間から、MTはERR_CONTEXT_BUSYとは異なるコードを生成することを学びました)。 Vitaly Muzichenko 2017.05.02 00:40 #1904 Rustam Bikbulatov: やり方がわかれば面白い) この2つをこの 1つに置き換えることができます。私はこれでうまくいっていますが、DCの注文の実行速度に大きく依存します。 Rustam Bikbulatov 2017.05.02 08:00 #1905 Maxim Kuznetsov:エラーメッセージは記録されていますか?ClosePosBySelect内部のディレイをより合理的な値に減らすことができます。各注文の決済は何度か試行され、その都度、失敗した場合はSleepが表示されます。ところで、エラーからのリカバリはもっと良い方法で行えます(これらの関数が作られた瞬間から、MTはERR_CONTEXT_BUSYとは異なるコードを生成することを学びました)。Sleepを 完全に削除してみましたが、違うようです。 Rustam Bikbulatov 2017.05.02 08:05 #1906 Vitaly Muzichenko:この 2つを置き換えても、私は問題なく使えますが、証券会社の注文執行の速さには大きく依存します。 それは完全なフクロウなのか、それとも何かのコードの一部なのか? ero1173 2017.05.03 06:19 #1907 紳士専門家、助けて!!!この問題には3日前から取り組んでいる。Expert Advisor の標準機能(どこでも見かける機能です)を使って、wininet.dll を使ってインターネットからファイルを読み込んで、さらに解析してみました。文字列ReadHTML(){if(!IsDllsAllowed()){Alert("設定でDLLを許可する必要があります。")return(")です。}int rv = InternetAttemptConnect(0);if(rv != 0){Alert("InternetAttemptConnect() "呼び出し時のエラー);return(")です。}int hInternetSession = InternetOpenW("Microsoft Internet Explorer", 0, "", "", 0);if(hInternetSession <= 0){Alert("InternetOpenW()の呼び出しエラー");return(")です。}int hURL = InternetOpenUrlW(hInternetSession,URL, "", 0, 0, 0);if(hURL <= 0){Alert("InternetOpenUrlW()の呼び出しにエラーが発生しました。InternetCloseHandle(hInternetSession)を使用します。return("");}int cBuffer[256];int dwBytesRead[1];文字列 TXT = "";while(!IsStopped()){bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);if(dwBytesRead[0] == 0)が壊れる。文字列 text = "";文字列 text0= "";for(int i = 0; i < 256; i++){text0= CharToStr((char)(cBuffer[i] & 0x000000FF))とする。if (text0!="\r") text = text + text0;else dwBytesRead[0]--。if(StringLen(text)==dwBytesRead[0])ブレーク。text0= CharToStr((char)(cBuffer[i] >> (8 & 0x000000FF));if (text0!="\r") text = text + text0;else dwBytesRead[0]--。if(StringLen(text)==dwBytesRead[0])ブレーク。text0= CharToStr((char)(cBuffer[i] >> (16 & 0x000000FF));if (text0!="\r") text = text + text0;else dwBytesRead[0]--。if(StringLen(text)==dwBytesRead[0])ブレーク。text0= CharToStr((char)(cBuffer[i] >> (24 & 0x000000FF));if (text0!="\r") text = text + text0;else dwBytesRead[0]--。if(StringLen(text)==dwBytesRead[0])ブレーク。}TXT = TXT + テキスト。スリープ(1)。}InternetCloseHandle(hURL)。InternetCloseHandle(hInternetSession)を使用します。return(TXT)です。}一度だけ読み込まれたサイトがその後更新され、その後この関数を呼び出すと(1分以内の周期で、サイトはより頻繁に更新されますが)、同じサイトが変更されずに(最初に読み込まれたとおりに)表示されるのは、すべてOKです。Expert Advisorを再起動しても、ターミナル起動後の初回にファイルが読み込まれたため、表示されるようになります。更新方法は、手動で必要なサイト(それぞれ、更新された情報)でInternet Explorerを開き、機能が更新された情報の読み込みを開始し、サイトのこの設定をフリーズするか、ターミナルMT4の再起動時(ターミナル再起動後に初めて読み込む場合もあるので出力し続ける)しかありません。InternetOpenWやInternetOpenUrlWというパラメータが関係していると思われますが、デフォルト値は0です。しかし、これについての明確な説明は見つからず、他のEAではどうにか動作します(サイトから端末にニュースを再送信するExpert Advisorから取りました)。はい、端末の 設定で、必要なサイトに対して「WebRequestを許可する...」としてください。 Any questions from newcomers MQL4と旧コードのアップデート(問題解決体験の共有化) Windows 7でニュースインジケーターが機能しないのはなぜですか? d1w4m3 2017.05.04 06:35 #1908 こんにちは。すでに私のRAMは発狂しています:EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します!EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します!私のRAMは発狂しています。インジケータからのシグナルの後、2本目のバーだけにEAが拘束される条件が思い浮かばないまたはTPやSLがトリガーされた場合、新しいシグナルを待ちますが、インジケーターのシグナルが変化したときだけです。void OnTick(){uptr =NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n), 4)。dntr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 1, n), 4)です。if(DN_Trend()==true){if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr){ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "Sloper", Magic, 0, Red);仮{SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。if (OrderSelect(ticket, SELECT_BY_TICKET))if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))Print("販売エラー");}} Any questions from newcomers 初心者の方からの質問 MQL4 MT4 MetaTrader どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - Artyom Trishkin 2017.05.04 09:18 #1909 d1w4m3:こんにちは。すでに私のRAMは発狂しています:EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します!EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します。インジケータからのシグナルの後、2本目のバーだけにEAが拘束される条件が思い浮かばないまたは、TPやSLがトリガーされた場合、Expert Advisorは新しいシグナルを待ちますが、インジケータのシグナルが変化したときだけです。 最後に決済されたポジションが シグナルと同じタイプで、このポジションがストップ注文の1つで決済された場合、ポジションを建てないことです。 d1w4m3 2017.05.04 09:50 #1910 Artyom Trishkin: 最後に閉じたポジションが シグナルが来たときと同じタイプで、このポジションがストップ注文の一つで閉じたのなら、ポジションを開けないことです。 回答ありがとうございます、しかし、私は2週間ほど勉強を始めたばかりです、これをコードで実装する方法、またはどこを読めばよいか教えてください。それともイゴール・キムによると?そして、まだそれは、その作業を開始したばかりのときに、システムに従っていない、ポジションを開く、あなたの条件は、この問題を回避することはできません。 1...184185186187188189190191192193194195196197198...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
行をコメントアウトして、1つの関数を動作させてみてください。
おぼえていると面白い)
おぼえていると面白い)
また、こんにちは。既知のプログラマーのコードを変更する方法を教えてください。現在、このフクロウは1秒間に約1回の取引を成立させています。プラス・マイナスに関係なく、一定の利益を超えたら即座に取引を終了するように変更したいです。
ログにエラーメッセージが書き込まれていませんか?
ClosePosBySelect内部の遅延をより合理的な値に減らすことはできませんか?そこでは、各オーダーを閉じるために何度も試行錯誤が行われ、失敗した場合は毎回Sleepが 表示されます。
ところで、エラーからのリカバリはもっと良い方法で行えます(これらの関数が作られた瞬間から、MTはERR_CONTEXT_BUSYとは異なるコードを生成することを学びました)。
やり方がわかれば面白い)
エラーメッセージは記録されていますか?
ClosePosBySelect内部のディレイをより合理的な値に減らすことができます。各注文の決済は何度か試行され、その都度、失敗した場合はSleepが表示されます。
ところで、エラーからのリカバリはもっと良い方法で行えます(これらの関数が作られた瞬間から、MTはERR_CONTEXT_BUSYとは異なるコードを生成することを学びました)。
この 2つを置き換えても、私は問題なく使えますが、証券会社の注文執行の速さには大きく依存します。
それは完全なフクロウなのか、それとも何かのコードの一部なのか?
紳士専門家、助けて!!!この問題には3日前から取り組んでいる。Expert Advisor の標準機能(どこでも見かける機能です)を使って、wininet.dll を使ってインターネットからファイルを読み込んで、さらに解析してみました。
文字列ReadHTML()
{
if(!IsDllsAllowed())
{
Alert("設定でDLLを許可する必要があります。")
return(")です。
}
int rv = InternetAttemptConnect(0);
if(rv != 0)
{
Alert("InternetAttemptConnect() "呼び出し時のエラー);
return(")です。
}
int hInternetSession = InternetOpenW("Microsoft Internet Explorer", 0, "", "", 0);
if(hInternetSession <= 0)
{
Alert("InternetOpenW()の呼び出しエラー");
return(")です。
}
int hURL = InternetOpenUrlW(hInternetSession,URL, "", 0, 0, 0);
if(hURL <= 0)
{
Alert("InternetOpenUrlW()の呼び出しにエラーが発生しました。
InternetCloseHandle(hInternetSession)を使用します。
return("");
}
int cBuffer[256];
int dwBytesRead[1];
文字列 TXT = "";
while(!IsStopped())
{
bool bResult = InternetReadFile(hURL, cBuffer, 1024, dwBytesRead);
if(dwBytesRead[0] == 0)
が壊れる。
文字列 text = "";
文字列 text0= "";
for(int i = 0; i < 256; i++)
{
text0= CharToStr((char)(cBuffer[i] & 0x000000FF))とする。
if (text0!="\r") text = text + text0;
else dwBytesRead[0]--。
if(StringLen(text)==dwBytesRead[0])ブレーク。
text0= CharToStr((char)(cBuffer[i] >> (8 & 0x000000FF));
if (text0!="\r") text = text + text0;
else dwBytesRead[0]--。
if(StringLen(text)==dwBytesRead[0])ブレーク。
text0= CharToStr((char)(cBuffer[i] >> (16 & 0x000000FF));
if (text0!="\r") text = text + text0;
else dwBytesRead[0]--。
if(StringLen(text)==dwBytesRead[0])ブレーク。
text0= CharToStr((char)(cBuffer[i] >> (24 & 0x000000FF));
if (text0!="\r") text = text + text0;
else dwBytesRead[0]--。
if(StringLen(text)==dwBytesRead[0])ブレーク。
}
TXT = TXT + テキスト。
スリープ(1)。
}
InternetCloseHandle(hURL)。
InternetCloseHandle(hInternetSession)を使用します。
return(TXT)です。
}
一度だけ読み込まれたサイトがその後更新され、その後この関数を呼び出すと(1分以内の周期で、サイトはより頻繁に更新されますが)、同じサイトが変更されずに(最初に読み込まれたとおりに)表示されるのは、すべてOKです。Expert Advisorを再起動しても、ターミナル起動後の初回にファイルが読み込まれたため、表示されるようになります。更新方法は、手動で必要なサイト(それぞれ、更新された情報)でInternet Explorerを開き、機能が更新された情報の読み込みを開始し、サイトのこの設定をフリーズするか、ターミナルMT4の再起動時(ターミナル再起動後に初めて読み込む場合もあるので出力し続ける)しかありません。InternetOpenWやInternetOpenUrlWというパラメータが関係していると思われますが、デフォルト値は0です。しかし、これについての明確な説明は見つからず、他のEAではどうにか動作します(サイトから端末にニュースを再送信するExpert Advisorから取りました)。はい、端末の 設定で、必要なサイトに対して「WebRequestを許可する...」としてください。
こんにちは。
すでに私のRAMは発狂しています:EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します!EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します!私のRAMは発狂しています。
インジケータからのシグナルの後、2本目のバーだけにEAが拘束される条件が思い浮かばない
またはTPやSLがトリガーされた場合、新しいシグナルを待ちますが、インジケーターのシグナルが変化したときだけです。
void OnTick()
{
uptr =NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 0, n), 4)。
dntr = NormalizeDouble(iCustom(NULL, 0, "Slope Direction Line", period, method, price, 1, n), 4)です。
if(DN_Trend()==true)
{
if(CountSell() == 0 && Bid < dntr && Open[3] < dntr && Close[3] < dntr)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "Sloper", Magic, 0, Red);
仮
{
SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。
TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。
if (OrderSelect(ticket, SELECT_BY_TICKET))
if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("販売エラー");
}
}
こんにちは。
すでに私のRAMは発狂しています:EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します!EAに問題が発生し、TPまたはSLを取った後、再び注文を開始します。
インジケータからのシグナルの後、2本目のバーだけにEAが拘束される条件が思い浮かばない
または、TPやSLがトリガーされた場合、Expert Advisorは新しいシグナルを待ちますが、インジケータのシグナルが変化したときだけです。
最後に閉じたポジションが シグナルが来たときと同じタイプで、このポジションがストップ注文の一つで閉じたのなら、ポジションを開けないことです。
回答ありがとうございます、しかし、私は2週間ほど勉強を始めたばかりです、これをコードで実装する方法、またはどこを読めばよいか教えてください。それともイゴール・キムによると?
そして、まだそれは、その作業を開始したばかりのときに、システムに従っていない、ポジションを開く、あなたの条件は、この問題を回避することはできません。