どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1033 1...102610271028102910301031103210331034103510361037103810391040...1178 新しいコメント Artyom Trishkin 2016.04.15 08:20 #10321 abeiks:こんにちは。現在、時刻が正しく返されない。例えば、時刻が12.04であれば、12.4を返す。この機能を正しく動作させる方法を教えてください。さて、Hour() と Minute() は、プログラム開始時点の最後のサーバー時刻から、現在の時間と分を返します。そして、返される値はint型 である。しかも、これらは単なる整数です。だから、フォーマットが必要なんです。例えば、こんな風に。string label=IntegerToString(Hour(),2,'0')+":"+IntegerToString(Minute(),2,'0'); Nauris Zukas 2016.04.15 08:43 #10322 artmedia70:Hour()および Minute()は、プログラム開始時の最後のサーバー時刻の現在時間と現在分 を返す。そして、返される値はint型である。しかも、これらは単なる整数です。だから、やはりフォーマットが必要なんですね。例えば、こんな風に。 ありがとうございました。 Artyom Trishkin 2016.04.15 09:28 #10323 abeiks: ありがとうございました。どういたしまして。秘密でないなら、なぜプログラムが最後に起動された時刻を示すタイムスタンプが必要なのでしょうか - その中の時刻は変わりません。 単なる好奇心で... DuKle 2016.04.16 21:38 #10324 こんにちは。1取引を1小節に制限する機能を正しく実装する方法を教えてください(例:あるローソク足ですでに取引が開始または終了している場合、そのローソク足では新しい取引は開始されません)多くのバリエーションを見つけたが、owlのコードを正しく書く方法がわからない(つまり、どの部分をグローバル変数に 書き、どの部分を取引開始条件に書くべきか)。例えば、こんなバリエーションがあります。int TekBar = -1; // 現在のバー。if (TekBar == Bars)return(0); // 1つのバーにつき1つのトレードのみ。TekBar = Bars; // 1つのバーには1つの取引しかありません。{...} このスクリプトのどの部分を、フクロウのコードのどの部分に挿入すればいいのでしょうか? Artyom Trishkin 2016.04.17 03:35 #10325 DuKle:こんにちは。1取引を1小節に制限する機能を正しく実装する方法を教えてください(例:あるローソク足ですでに取引が開始または終了している場合、そのローソク足では新しい取引は開始されません)多くのバリエーションを見つけたが、owlのコードを正しく書く方法がわからない(つまり、どの部分をグローバル変数に書き、どの部分を取引開始条件に書くべきか)。例えば、こんなバリエーションがあります。int TekBar = -1; // 現在のバー。if (TekBar == Bars)return(0); // 1つのバーにつき1つのトレードのみ。TekBar = Bars; // 1つのバーには1つの取引しかありません。{...} このスクリプトのどの部分を、フクロウのコードのどの部分に挿入すればいいのでしょうか?バー番号0での最後の取引が、オープンかクローズかを調べる必要があります。これを行うには、最後のオープントレードと最後のクローズドトレードを見つける必要があります。最後のオープントレードのバーと最後のクローズトレードのバーを表示します。これらの値(最後のオープントレードのバーまたは最後のクローズドトレードのバー)のいずれかがゼロである場合、新しいポジションを開くことはできません。そして、そうです。これはスクリプトではなく、ただのコードなのです。そして、フクロウに何も挿入する必要はありません。フクロウは夜行性の猛禽類であり、鳥を生かすのです。 Ilya Severskiy 2016.04.17 07:22 #10326 こんにちは!助けてくださいアイデアはあるが、どう実装したらいいかわからない。そして何より、この問題に解決策があるのかどうかがわからないのです。その本質は以下の通りです:与えられた数のバーで チャートに何らかの線を引くインジケータがあります。線の左「端」をマウスでドラッグして、線を引くバーの本数を変更することはできますか?ドラッグした後、インジケータは計算に使用される新しいバーの数を記憶しているはずです。以下は、私が改善したいインジケータの例です。//+------------------------------------------------------------------+ //| Canal__.mq4 | //+------------------------------------------------------------------+ //---------------------------------- #property indicator_chart_window //---------------------------------- extern int Hours=20; extern color col=Red; //------------------ double lr,lr0,lrp; double sx,sy,sxy,sx2,aa,bb; int p,fs; ulong sName; int f,f0,f1; double dh,dl,dh_1,dl_1,dh_2,dl_2; int ai_1,ai_2,bi_1,bi_2; double hai,lai,dhi,dli,dhm,dlm,ha0,hap,la0,lap; double price_p1,price_p0,price_p2,price_01,price_00,price_02; int p1,p0,p2,fp; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { p=Hours*60/Period(); if(fs==0) { sName=TimeCurrent(); fs=1; } //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("1"+(string)sName); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i,n; //---- if(f==1) { p1=iBarShift(Symbol(),Period(),(datetime)ObjectGet("1"+(string)sName,OBJPROP_TIME1)); if(fp==0 && p!=p1) {p=p1; fp=1;} } //---- sx=0; sy=0; sxy=0; sx2=0; for(n=0; n<=p; n++) { sx+=n; sy+=Close[n]; sxy+=n*Close[n]; sx2+=MathPow(n,2); } aa=(sx*sy-(p+1)*sxy)/(MathPow(sx,2)-(p+1)*sx2); bb=(sy-aa*sx)/(p+1); //---- for(i=0; i<=p; i++) { lr=bb+aa*i; dh=High[i]-lr; dl=Low[i]-lr; //---- if(i<p/2) { if(i==0) { dh_1=0.0; dl_1=0.0; ai_1=i; bi_1=i; } if(dh>=dh_1) {dh_1=dh; ai_1=i;} if(dl<=dl_1) {dl_1=dl; bi_1=i;} } //---- if(i>=p/2) { if(i==p/2) { dh_2=0.0; dl_2=0.0; ai_2=i; bi_2=i; } if(dh>=dh_2) {dh_2=dh; ai_2=i;} if(dl<=dl_2) {dl_2=dl; bi_2=i;} } } lr0=bb; lrp=bb+aa*(i+p); //=================================================== if(MathAbs(ai_1-ai_2)>MathAbs(bi_1-bi_2)) f=1; if(MathAbs(ai_1-ai_2)<MathAbs(bi_1-bi_2)) f=2; if(MathAbs(ai_1-ai_2)==MathAbs(bi_1-bi_2)) { if(MathAbs(dh_1-dh_2)<MathAbs(dl_1-dl_2)) f=1; if(MathAbs(dh_1-dh_2)>=MathAbs(dl_1-dl_2)) f=2; } //================================================= if(f==1) { for(n=0; n<=20; n++) { f1=0; for(i=0; i<=p; i++) { hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1); if(i==0 || i==p/2) dhm=0.0; if(High[i]-hai>dhm && i<p/2) {ai_1=i; f1=1;} if(High[i]-hai>dhm && i>=p/2) {ai_2=i; f1=1;} } if(f==0) break; } //---------------------------- for(i=0; i<=p; i++) { hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1); dli=Low[i]-hai; if(i==0) dlm=0.0; if(dli<dlm) dlm=dli; } ha0=High[ai_1]*(0-ai_2)/(ai_1-ai_2)+High[ai_2]*(0-ai_1)/(ai_2-ai_1); hap=High[ai_1]*(p-ai_2)/(ai_1-ai_2)+High[ai_2]*(p-ai_1)/(ai_2-ai_1); //---------------------------- price_p1=hap+dlm/2; price_01=ha0+dlm/2; } //================================================= if(f==2) { for(n=0; n<=20; n++) { f1=0; for(i=0; i<=p; i++) { lai=Low[bi_1]*(i-bi_2)/(bi_1-bi_2)+Low[bi_2]*(i-bi_1)/(bi_2-bi_1); if(i==0 || i==p/2) dlm=0.0; if(Low[i]-lai<dlm && i<p/2) {bi_1=i; f1=1;} if(Low[i]-lai<dlm && i>=p/2) {bi_2=i; f1=1;} } if(f==0) break; } //---------------------------- for(i=0; i<=p; i++) { lai=Low[bi_1]*(i-bi_2)/(bi_1-bi_2)+Low[bi_2]*(i-bi_1)/(bi_2-bi_1); dhi=High[i]-lai; if(i==0) dhm=0.0; if(dhi>dhm) dhm=dhi; } la0=Low[bi_1]*(0-bi_2)/(bi_1-bi_2)+Low[bi_2]*(0-bi_1)/(bi_2-bi_1); lap=Low[bi_1]*(p-bi_2)/(bi_1-bi_2)+Low[bi_2]*(p-bi_1)/(bi_2-bi_1); //---------------------------------------------------------------- price_p1=lap+dhm/2; price_01=la0+dhm/2; } //=================================================================================== отрисовка линий ObjectCreate("1"+(string)sName,2,0,Time[p],price_p1,Time[0],price_01); //----------------------------------------------------------------- ObjectSet("1"+(string)sName,OBJPROP_COLOR,col); ObjectSet("1"+(string)sName,OBJPROP_STYLE,STYLE_DASHDOT); ObjectSet("1"+(string)sName,OBJPROP_RAY,false); //--------------------------------------------- ObjectSet("1"+(string)sName,OBJPROP_TIME1,Time[p]); ObjectSet("1"+(string)sName,OBJPROP_PRICE1,price_p1); ObjectSet("1"+(string)sName,OBJPROP_TIME2,Time[0]); ObjectSet("1"+(string)sName,OBJPROP_PRICE2,price_01); f=1; p1=p; p0=p; p2=p; fp=0; //=================================================================================== return(0); } //+------------------------------------------------------------------+ Artyom Trishkin 2016.04.17 07:39 #10327 Night63:こんにちは!助けてくださいアイデアはあるが、どう実装したらいいかわからない。そして何より、この問題に解決策があるのかどうかがわからないのです。その本質は以下の通りです:与えられた数のバーでチャートに何らかの線を引くインジケータがあります。線の左「端」をマウスでドラッグして、線を引くバーの本数を変更することはできますか?ドラッグした後、インジケータは計算に使用される新しいバーの数を記憶しているはずです。以下は、私が改善したいインジケータの例です。 インジケータにOnChartEvent() を追加し、CHARTEVENT_OBJECT_CHANGEという 名前で行サイズ変更のイベントを追跡する必要があります。新しい線の長さをバー単位で再計算し、その新しいサイズを計算のパラメータとして使用します。 DuKle 2016.04.17 08:27 #10328 artmedia70:最後の取引がバー番号0に開かれたのか閉じられたのかを調べる必要があります。これを行うには、最後のオープントレードと最後のクローズドトレードを見つける必要があります。直近のオープントレードのオープンバーと、直近のクローズドトレードのクローズバーを表示します。これらの値(最後のオープントレードのバーまたは最後のクローズドトレードのバー)のいずれかがゼロである場合、新しいポジションを開くことはできません。そして、そうです。スクリプトがあるわけではなく、nepomyshchegoのコードの一部に過ぎないのですね。そして、フクロウに何も挿入する必要はありません。フクロウは夜行性の猛禽類であり、鳥を生かすのです。 取引の有無を検出する原理は理解できたのですが、コードにどのように実装すればよいのかがわかりません :-( Artyom Trishkin 2016.04.17 16:33 #10329 DuKle: トランザクションが存在するかどうかを判断する原理は理解できますが、コードでどのように実装すればよいのかわかりません :-(なんて悲しいんだろう...。私が代わりにやりましょうか?手始めに、そしてさらに理解を深めるために、「KimIVの便利な機能」スレッドを読んでみてください。もちろん、コードは冗長ですが、始めに学習するにはちょうど良いものです。 削除済み 2016.04.18 07:55 #10330 mql4/5プログラマの皆様へ !プログラミング言語の基本を学び、卒業論文のためにEAを 開発したビギナーです私の卒業証書には「経済学」という章があります。もし、私が企業のために何かプログラムを開発するのであれば、経済的な部分ですべてがクリアーになります。でも、私の場合はどうしたらいいのでしょう?何を考慮し、どの道を進めばいいのか!?ありがとうございました!!!!___________________________道は歩むもの (c) 1...102610271028102910301031103210331034103510361037103810391040...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
現在、時刻が正しく返されない。例えば、時刻が12.04であれば、12.4を返す。この機能を正しく動作させる方法を教えてください。
さて、Hour() と Minute() は、プログラム開始時点の最後のサーバー時刻から、現在の時間と分を返します。そして、返される値はint型 である。しかも、これらは単なる整数です。だから、フォーマットが必要なんです。例えば、こんな風に。
Hour()および Minute()は、プログラム開始時の最後のサーバー時刻の現在時間と現在分 を返す。そして、返される値はint型である。しかも、これらは単なる整数です。だから、やはりフォーマットが必要なんですね。例えば、こんな風に。
ありがとうございました。
どういたしまして。秘密でないなら、なぜプログラムが最後に起動された時刻を示すタイムスタンプが必要なのでしょうか - その中の時刻は変わりません。
単なる好奇心で...
こんにちは。
1取引を1小節に制限する機能を正しく実装する方法を教えてください(例:あるローソク足ですでに取引が開始または終了している場合、そのローソク足では新しい取引は開始されません)
多くのバリエーションを見つけたが、owlのコードを正しく書く方法がわからない(つまり、どの部分をグローバル変数に 書き、どの部分を取引開始条件に書くべきか)。
例えば、こんなバリエーションがあります。
int TekBar = -1; // 現在のバー。if (TekBar == Bars)return(0); // 1つのバーにつき1つのトレードのみ。
TekBar = Bars; // 1つのバーには1つの取引しかありません。
{...}
このスクリプトのどの部分を、フクロウのコードのどの部分に挿入すればいいのでしょうか?
こんにちは。
1取引を1小節に制限する機能を正しく実装する方法を教えてください(例:あるローソク足ですでに取引が開始または終了している場合、そのローソク足では新しい取引は開始されません)
多くのバリエーションを見つけたが、owlのコードを正しく書く方法がわからない(つまり、どの部分をグローバル変数に書き、どの部分を取引開始条件に書くべきか)。
例えば、こんなバリエーションがあります。
int TekBar = -1; // 現在のバー。if (TekBar == Bars)return(0); // 1つのバーにつき1つのトレードのみ。
TekBar = Bars; // 1つのバーには1つの取引しかありません。
{...}
このスクリプトのどの部分を、フクロウのコードのどの部分に挿入すればいいのでしょうか?
バー番号0での最後の取引が、オープンかクローズかを調べる必要があります。
これを行うには、最後のオープントレードと最後のクローズドトレードを見つける必要があります。
最後のオープントレードのバーと最後のクローズトレードのバーを表示します。
これらの値(最後のオープントレードのバーまたは最後のクローズドトレードのバー)のいずれかがゼロである場合、新しいポジションを開くことはできません。
そして、そうです。これはスクリプトではなく、ただのコードなのです。そして、フクロウに何も挿入する必要はありません。フクロウは夜行性の猛禽類であり、鳥を生かすのです。
こんにちは!助けてください
アイデアはあるが、どう実装したらいいかわからない。そして何より、この問題に解決策があるのかどうかがわからないのです。
その本質は以下の通りです:与えられた数のバーで チャートに何らかの線を引くインジケータがあります。
線の左「端」をマウスでドラッグして、線を引くバーの本数を変更することはできますか?ドラッグした後、インジケータは計算に使用される新しいバーの数を記憶しているはずです。以下は、私が改善したいインジケータの例です。
こんにちは!助けてください
アイデアはあるが、どう実装したらいいかわからない。そして何より、この問題に解決策があるのかどうかがわからないのです。
その本質は以下の通りです:与えられた数のバーでチャートに何らかの線を引くインジケータがあります。
線の左「端」をマウスでドラッグして、線を引くバーの本数を変更することはできますか?ドラッグした後、インジケータは計算に使用される新しいバーの数を記憶しているはずです。以下は、私が改善したいインジケータの例です。
最後の取引がバー番号0に開かれたのか閉じられたのかを調べる必要があります。
これを行うには、最後のオープントレードと最後のクローズドトレードを見つける必要があります。
直近のオープントレードのオープンバーと、直近のクローズドトレードのクローズバーを表示します。
これらの値(最後のオープントレードのバーまたは最後のクローズドトレードのバー)のいずれかがゼロである場合、新しいポジションを開くことはできません。
そして、そうです。スクリプトがあるわけではなく、nepomyshchegoのコードの一部に過ぎないのですね。そして、フクロウに何も挿入する必要はありません。フクロウは夜行性の猛禽類であり、鳥を生かすのです。
トランザクションが存在するかどうかを判断する原理は理解できますが、コードでどのように実装すればよいのかわかりません :-(
なんて悲しいんだろう...。
私が代わりにやりましょうか?
手始めに、そしてさらに理解を深めるために、「KimIVの便利な機能」スレッドを読んでみてください。
もちろん、コードは冗長ですが、始めに学習するにはちょうど良いものです。
mql4/5プログラマの皆様へ !
プログラミング言語の基本を学び、卒業論文のためにEAを 開発したビギナーです
私の卒業証書には「経済学」という章があります。
もし、私が企業のために何かプログラムを開発するのであれば、経済的な部分ですべてがクリアーになります。
でも、私の場合はどうしたらいいのでしょう?何を考慮し、どの道を進めばいいのか!?
ありがとうございました!!!!
___________________________
道は歩むもの (c)