どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 945 1...938939940941942943944945946947948949950951952...1178 新しいコメント charter 2015.10.02 05:59 #9441 Leo59:MetaTrader4のターミナルで「Indicators -> Trends -> Moving Average」タブで呼び出されるIMAテクニカルインジケータのINITIAL CODE が必要なのですが、どうすればよいでしょうか?明確になったのでしょうか?なぜ車輪を再発明するのか?OsMAとか他のコードと同じにする。//+------------------------------------------------------------------+ //| Moving Average of Oscillator | //+------------------------------------------------------------------+ int OnCalculate (const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[]) { int i,limit; //--- if(rates_total<=InpSignalSMA || !ExtParameters) return(0); //--- last counted bar will be recounted limit=rates_total-prev_calculated; if(prev_calculated>0) limit++; //--- macd counted in the 1-st buffer for(i=0; i<limit; i++) ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)- iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i); //--- signal line counted in the 2-nd buffer SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer); //--- main loop for(i=0; i<limit; i++) ExtOsmaBuffer[i]=ExtMacdBuffer[i]-ExtSignalBuffer[i]; //--- done return(0); } //+------------------------------------------------------------------+ それとも、断固としてMetaquotesを信用しないのでしょうか? 削除済み 2015.10.02 08:07 #9442 皆さん、こんにちは。943ページで、作品の説明と*dllライブラリの例についてのスクリプトを掲載しました。スクリプトがうまくいかない理由が少しわかりました。1.この場合、#include<WinUser32.mqh>は必要ありません。2.条件別 if(lastkey != 0)Alert("lastkey=",lastkey); 押されたキーのコードを安定的に正しく出力する。ディレイをすれば、その効果は疑いようがない。3.条件別 if(lastmouse != 0) Alert("lastmouse=",lastmouse); マウスが動かなくても、安定して512を出力するようにした。他の数字が飛び出すことは非常に稀ですマウスのボタンをクリックすることに応じて4. if(lastwnd != 0) Alert("lastwnd=",lastwnd); は空の文字列を返します。おそらく、ライブラリが古く、ユニコードでないためだと思われます。ヘルプには、エディタは*dllライブラリを扱うことができ、エディタウィンドウにドラッグ&ドロップするだけでよい、と書かれています。開かない。質問です。誰か "IdleLib.dll "を修正するのを助けるか、またはお金のためにより良い。もしどこかにこのトピック(および他の*dll)があれば、リンクを表示してください。 amavladi 2015.10.05 10:46 #9443 私のEAでオートトレードを禁止する方法(あるイベントの後)、すなわち、ターミナルオートトレードのボタンを禁止に設定 する方法を教えてください。定数ACCOUNT_TRADE_ALLOWEDを呼び出してその値をfalseに変更しようとしましたが、コンパイラは、これは効果がないと言います( ACCOUNT_TRADE_ALLOWED == false; //式は効果がありません)。 Alexey Viktorov 2015.10.05 12:14 #9444 お試しください#import "user32.dll" int GetForegroundWindow(); int PostMessageW(int hWnd, int Msg, int wParam, string lParam); #import #define WM_COMMAND 0x0111 после определенного события PostMessageW(GetForegroundWindow(), WM_COMMAND, 33020, (string) 0); charter 2015.10.06 09:33 #9445 amavladi:EAで自動売買の禁止を規定する方法、つまり自動売買 端末のボタンをプログラムで禁止に する方法を教えてください。定数ACCOUNT_TRADE_ALLOWEDを呼び出してその値をfalseに変更しようとしましたが、コンパイラは、これは効果がないと言います( ACCOUNT_TRADE_ALLOWED == false; //式は効果がありません)。このタスク(EAの取引を禁止する)は、セマフォ(true/false...取引の許可/不許可)を使えば非常に簡単に解決できます。それとも、「自動売買」ボタンを押すことが重要なのでしょうか? amavladi 2015.10.06 19:00 #9446 charter:このタスク(EAの取引を禁止する)は、セマフォ(true/false...取引の許可/不許可)を使えば非常に簡単に解決できます。それとも、"AutoTrading "ボタンを押すことがそんなに重要なのでしょうか?端末全体のAutoTradingを 無効にできないのであれば、もちろんそうするつもりです。問題は、私のターミナルでいくつかのExpert Advisorを実行しているのですが、私は別EAでEquityを監視し、Aquityが50%減少した時など緊急時に全EAのAutoTradingを同時に無効化したい。 Alexey Viktorov 2015.10.06 20:49 #9447 amavladi: 端末全体のAutoTradingを 禁止できないのであれば、必ず そうします。私の端末では、いくつかのExpert Advisorが動作していることです。別のEAで口座利益を監視し、口座利益が50%減少した場合など緊急時にはすべてのEAの自動売買を同時に無効にしたいと思った。ちょっと確認していません。WinUser32.mqhを添付のものに差し替えると動作するようになります。今確認したところ、動作しています。さらにギミックを紹介します。#include <WinUser32.mqh> void OnTick() { после определенного события wCommands(20); } void wCommands(int com) { switch(com) { case 1: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33137, (string)0); return; //M1 | case 2: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33138, (string)0); return; //M5 | case 3: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33139, (string)0); return; //M15 | case 4: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33140, (string)0); return; //M30 | case 5: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33135, (string)0); return; //H1 | case 6: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33136, (string)0); return; //H4 | case 7: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33134, (string)0); return; //D1 | case 8: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33141, (string)0); return; //W1 | case 9: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33334, (string)0); return; //MN | case 10: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33050, (string)0); return; //Удалить эксперт | case 11: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 35426, (string)0); return; //Удалить скрипт | case 12: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 57602, (string)0); return; //Закрыть окно текушего графика | 57604 //Сохранить как 57607 //Вызов диспетчера печати 57608 //Печать графика 57609 //Предварительный просмотр case 13: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33048, (string)0); return; //Вызов свойств экстерта | case 14: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33157, (string)0); return; //Вызов свойств графика | case 15: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33025, (string)0); return; //Увеличение масштаба | case 16: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33026, (string)0); return; //Уменьшение масштаба | case 17: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33018, (string)0); return; //Переключение на бары | case 18: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33019, (string)0); return; //Переключение на свечи | case 19: PostMessageA(WindowHandle(Symbol(), Period()), WM_COMMAND, 33022, (string)0); return; //Переключение на линию | case 20: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33020, (string)0); return; //Переключение кнопки советника | case 21: PostMessageA(GetForegroundWindow(), WM_COMMAND, 35429, (string)0); return; //Окно логина и пароля | case 22: PostMessageA(GetForegroundWindow(), WM_COMMAND, 37400, (string)0); return; //Пересканировать сервера | case 23: PostMessageA(GetForegroundWindow(), WM_COMMAND, 35403, (string)0); return; //Глобальные переменные | case 24: PostMessageA(GetForegroundWindow(), WM_COMMAND, 35419, (string)0); return; //Список индикаторов | case 25: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33265, (string)0); return; //Открывает окно настройки | case 26: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33262, (string)0); return; //Архив катировак | case 27: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33309, (string)0); return; //Обзор рынка | case 28: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33310, (string)0); return; //Навигатор | case 29: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33314, (string)0); return; //Терминал | case 30: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33315, (string)0); return; //Тестер стратегий | } }そして、WinUser32.mqhを変更しなくても動作するように、前回の記事を修正しました。 ファイル: winuser32.mqh 71 kb Mihail Marchukajtes 2015.10.07 06:44 #9448 皆さん、ごきげんよう...。問題は以下の通りだと存じます。コードをコンパイルすると、変数dは値110を取り、インジケータはすべてを正しく表示しますが、新しいバーが 到着すると、変数は109になり、その結果、インジケータのすべての読み取りを完全に狂わせてしまいます。もう、めちゃくちゃです......。何なんだ、これは......。int start() { int limit,Val,Oi; drawonce(); //limit=Bars; if (b!=Bars){ b=Bars; datetime ldt_BeginDay = iTime (NULL, PERIOD_D1,Q); int li_Bar = iBarShift (NULL, 0, ldt_BeginDay); d=0; for(int i=li_Bar-10; i>=0; i--){ if (curDay!=TimeDay(Time[i])) { curDay=TimeDay(Time[i]); OOO=iClose(NULL,PERIOD_D1,Q-d+1)-iOpen(NULL,PERIOD_D1,Q-d+1); if (volarr[Q-d]!=0) Val=volarr[Q-d]-volarr[Q-d+1]; if (oiarr[Q-d]!=0) Oi=oiarr[Q-d]-oiarr[Q-d+1]; d++; } Buffer1[i]=Val; Buffer2[i]=Oi; Buffer3[i]=OOO; } } WindowRedraw(); Comment(Q," ",d); return(0); } なぜコンパイル中は1つの値が変数になっているのに、新しいバーの到着で変数が変わるのか? Mihail Marchukajtes 2015.10.07 12:43 #9449 まあ......私の場合、プロでも強くない? Mihail Marchukajtes 2015.10.07 14:59 #9450 コンパイルと新しいバーの 到着の違いを説明できる人はいますか? 1...938939940941942943944945946947948949950951952...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MetaTrader4のターミナルで「Indicators -> Trends -> Moving Average」タブで呼び出されるIMAテクニカルインジケータのINITIAL CODE が必要なのですが、どうすればよいでしょうか?
明確になったのでしょうか?
なぜ車輪を再発明するのか?
OsMAとか他のコードと同じにする。
それとも、断固としてMetaquotesを信用しないのでしょうか?
皆さん、こんにちは。943ページで、作品の説明と*dllライブラリの例についてのスクリプトを掲載しました。スクリプトがうまくいかない理由が少しわかりました。
1.この場合、#include<WinUser32.mqh>は必要ありません。
2.条件別 if(lastkey != 0)Alert("lastkey=",lastkey); 押されたキーのコードを安定的に正しく出力する。ディレイをすれば、その効果は疑いようがない。
3.条件別 if(lastmouse != 0) Alert("lastmouse=",lastmouse); マウスが動かなくても、安定して512を出力するようにした。他の数字が飛び出すことは非常に稀です
マウスのボタンをクリックすることに応じて
4. if(lastwnd != 0) Alert("lastwnd=",lastwnd); は空の文字列を返します。おそらく、ライブラリが古く、ユニコードでないためだと思われます。
ヘルプには、エディタは*dllライブラリを扱うことができ、エディタウィンドウにドラッグ&ドロップするだけでよい、と書かれています。開かない。
質問です。誰か "IdleLib.dll "を修正するのを助けるか、またはお金のためにより良い。もしどこかにこのトピック(および他の*dll)があれば、リンクを表示してください。
EAで自動売買の禁止を規定する方法、つまり自動売買 端末のボタンをプログラムで禁止に する方法を教えてください。定数ACCOUNT_TRADE_ALLOWEDを呼び出してその値をfalseに変更しようとしましたが、コンパイラは、これは効果がないと言います( ACCOUNT_TRADE_ALLOWED == false; //式は効果がありません)。
このタスク(EAの取引を禁止する)は、セマフォ(true/false...取引の許可/不許可)を使えば非常に簡単に解決できます。
それとも、「自動売買」ボタンを押すことが重要なのでしょうか?
このタスク(EAの取引を禁止する)は、セマフォ(true/false...取引の許可/不許可)を使えば非常に簡単に解決できます。
それとも、"AutoTrading "ボタンを押すことがそんなに重要なのでしょうか?
端末全体のAutoTradingを 無効にできないのであれば、もちろんそうするつもりです。問題は、私のターミナルでいくつかのExpert Advisorを実行しているのですが、私は
別EAでEquityを監視し、Aquityが50%減少した時など緊急時に全EAのAutoTradingを同時に無効化したい。
端末全体のAutoTradingを 禁止できないのであれば、必ず そうします。私の端末では、いくつかのExpert Advisorが動作していることです。
別のEAで口座利益を監視し、口座利益が50%減少した場合など緊急時にはすべてのEAの自動売買を同時に無効にしたいと思った。
ちょっと確認していません。WinUser32.mqhを添付のものに差し替えると動作するようになります。
今確認したところ、動作しています。さらにギミックを紹介します。
そして、WinUser32.mqhを変更しなくても動作するように、前回の記事を修正しました。
皆さん、ごきげんよう...。問題は以下の通りだと存じます。コードをコンパイルすると、変数dは値110を取り、インジケータはすべてを正しく表示しますが、新しいバーが 到着すると、変数は109になり、その結果、インジケータのすべての読み取りを完全に狂わせてしまいます。もう、めちゃくちゃです......。何なんだ、これは......。
なぜコンパイル中は1つの値が変数になっているのに、新しいバーの到着で変数が変わるのか?