KimIVの便利な機能 - ページ 37 1...303132333435363738394041424344...128 新しいコメント Alexei Kharchenko 2008.08.01 06:00 #361 KimIV писал (а)>> isLossLastPos()関数です。 説明: 最後に閉じた位置の損失フラグを返す。フラグアップ -True- 最後のポジションは損失で決済されました。フラグ省略 -False- 最後のポジションがゼロ、または利益で決済された。本機能はスワップ、コミッションを考慮しない。ポジションの選択は、外部パラメータで定義されます。 sy- 市場商品の名前。このパラメータを指定すると、指定した楽器の位置のみを考慮するようになります。初期値「」は、あらゆる市場商品を意味する。NULLは 現在の楽器を意味します。 op- 貿易業務、ポジションタイプ。有効な値:OP_BUY、OP_SELL、または-1。デフォルト値-1 は任意の位置を意味する。 mn- 位置の識別子,MagicNumber.デフォルトの値である- 1は、任意の識別子を意味する。 追伸:isLossLastPos()関数をテストするスクリプトを添付します。 最後に閉じた位置に関する機能を増やさないために、次のようなバリエーションを提案します。 int LastClosePos(string sy="", int op=-1, int mn=-1) { datetime t; int i, j=-1, k=OrdersHistoryTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderCloseTime()) { t=OrderCloseTime(); j=OrderTicket(); } else return(j); } } } } } } return(-1); } この機能は、最後に閉じた位置のチケット番号を定義します。 チケットの番号とその後の対応は、解決すべき問題に応じてプログラマーの判断に委ねられます。 Igor Kim 2008.08.03 12:22 #362 関数 FindNearFractal()。 この関数は、最も近いフラクタル素片を検索し、その価格水準を返す。この関数は、以下のオプションパラメータを受け付ける。 sy- 楽器の名前です。"" またはNULL- 現在のシンボル。デフォルトはNULL。 tf- タイムフレーム.初期値0- 現在のシンボル。 mode- フラクタルタイプ。MODE_LOWER およびMODE_UPPER が使用可能である。初期値はMODE_LOWER です。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 07.10.2006 | //| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| mode - тип фрактала (MODE_LOWER|MODE_UPPER) | //+----------------------------------------------------------------------------+ double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) { if (sy=="" || sy=="0") sy=Symbol(); double f=0; int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2; for (s=2; s<100; s++) { f=iFractals(sy, tf, mode, s); if (f!=0) return(NormalizeDouble(f, d)); } Print("FindNearFractal(): Фрактал не найден"); return(0); } Igor Kim 2008.08.03 12:25 #363 FindNearFractal()の使用例です。 現在のチャートで最も近い下降フラクタルの価格。 Message(FindNearFractal()); 現在のシンボルのH4チャートで最も近い上段フラクタルの価格。 Message(FindNearFractal(NULL, PERIOD_H4, MODE_UPPER)); GBPUSD M30チャートの直近の下限フラクタルの価格. Message(FindNearFractal("GBPUSD", PERIOD_M30, MODE_LOWER)); SZY. FindNearFractal()関数をテストするスクリプトを添付しています。 ファイル: test_findnearfractal.mq4 4 kb obabuev 2008.08.04 05:07 #364 KimIV писал (а) >> Примеры использования функции SetVLine(). Голубая сплошная вертикальная линия на текущем баре. Сиреневая толстая линия на восьмом баре. Сетка пунктирных линий на барах 14:00. ЗЫ. Во вложении скрипт для тестирования функции SetVLine(). KimIV писал (а)>> SetVLine()の使用例です。 現在のバー上に青色の縦実線を表示します。 8本目の小節にライラック色の太い線がある。 バー14:00に点線のグリッド。 ZS. SetVLine()関数をテストするスクリプトを添付します。 イゴールさん、こんにちは。 このような関数をインジケータで使用する場合の例を教えてください。 PreviousiHighsvAndhLows0のインジケータを改良して、時間によるマークを付けようとしています。 SetVLine()の例で、バーオープン時に一定時間でマークを描画する... これまで、私のバージョンはナンセンスなものを描いてきました。 すでにフォーラムで相談しているのですが、ここでは初心者は甘えられないので...。 ありがとうございます。 ファイル: previousihighsvandhlows0_time.mq4 8 kb Igor Kim 2008.08.06 12:55 #365 obabuev писал (а)>> このような関数をインジケータで使用する場合の例を教えてください。 インジケーターを改良して、タイムスタンプの描画を追加しようと思っているんだ。 SetVLine()の例で、ある時間のバーが開くときにマークを描く... どのマークを描きたいかをイラストで示す。 Igor Kim 2008.08.06 13:22 #366 GetExtremumZZZBar()関数。 この関数は、標準カスタムジグザグインジケータの 極値を検索し、バー番号を返します。この関数は、以下のオプションパラメータを受け付ける。 sy- 楽器の名前です。"" またはNULL- 現在のシンボルです。デフォルトはNULL。 tf- タイムフレーム.デフォルト値は、0- 現在のタイムフレームです。 ne- 極端な数字。0- 最後、1- 前、2- 前、など。 dp,dv,bs- ZigZagaパラメータ:ExtDepth,ExtDeviation,ExtBackstep それぞれ. //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 07.10.2006 | //| Описание : Возвращает номер бара экстремума ЗигЗага по его номеру. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента (NULL или "" - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| ne - номер экстремума ( 0 - последний) | //| dp - ExtDepth | //| dv - ExtDeviation | //| bs - ExtBackstep | //+----------------------------------------------------------------------------+ int GetExtremumZZBar(string sy="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) { if (sy=="" || sy=="0") sy=Symbol(); double zz; int i, k=iBars(sy, tf), ke=0; for (i=0; i<k; i++) { zz=iCustom(sy, tf, "ZigZag", dp, dv, bc, 0, i); if (zz!=0) { ke++; if (ke>ne) return(i); } } Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден"); return(-1); } 「KimIVの便利な機能」のみ。 MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Useful features from KimIV Igor Kim 2008.08.06 13:25 #367 GetExtremumZZZBar()関数の使用例です。 現在のチャートで、最後のジグザグの 極限値を持つバーの番号です。 Message(GetExtremumZZBar()); 現在のシンボルのH4チャートの最後から2番目のZigZagの極値を持つバーの番号です。 Message(GetExtremumZZBar(NULL, PERIOD_H4, 1)); 現在のチャートで最後のZigZagブレイクを見つけ、それを通る垂直線を引く。 int n=GetExtremumZZBar(NULL, 0, 1); SetVLine(Magenta, "", Time[n]); ZS. GetExtremumZZZBar() 関数をテストするスクリプトを添付します。 ファイル: test_getextremumzzbar.mq4 5 kb obabuev 2008.08.06 18:48 #368 KimIV писал (а)>> どのマークを描きたいかをイラストで示す。 イゴールさん、ご回答ありがとうございました。 2日かかりましたが、マークを作りました。 今はもう一回やろうと思っています。 テスト用に必要 御社のi-AnyRangeインジケータを利用して インジケータは、ランダムな偏差で時間を処理します。 例えば-。 インジケータは time1=10:05です。 time2=15:35。 を使用し、インジケーター自体のインジケーターラインの計算には T1=time1(+/-ランダム) T2=time2(+/-ランダム) しかし、最大偏差の制限も設定する必要があります。 最大ランダム =5min; 難問は、ランダム性を5分間に制限する方法だけですか? 皆さんも似たような例があるのではないでしょうか。 ファイル: iwanyrange.mq4 4 kb Igor Kim 2008.08.06 20:04 #369 obabuev писал (а)>> が、最大偏差の制限も設定する必要があります。 最大ランダム =5min; つまるところ、ランダム性を5分間に制限するにはどうしたらいいかということです。 似たような事例があるのでしょう。 5分間は300秒です。 void init() { MathSrand(TimeLocal()); } void start() { double a=MathRand()/32767.0*300; int b=MathFloor(a); Comment(b); } obabuev 2008.08.07 01:40 #370 KimIV писал (а)>> 5分といえば300秒。 もちろん、ありがとうございます。でも、質問の答えにはなっていません。 文字列にint bを追加する方法 Time2 minutes now or how to make plus minus random >>もちろん調べますが、なかなか難しいです。 1...303132333435363738394041424344...128 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
isLossLastPos()関数です。
説明: 最後に閉じた位置の損失フラグを返す。フラグアップ -True- 最後のポジションは損失で決済されました。フラグ省略 -False- 最後のポジションがゼロ、または利益で決済された。本機能はスワップ、コミッションを考慮しない。ポジションの選択は、外部パラメータで定義されます。
最後に閉じた位置に関する機能を増やさないために、次のようなバリエーションを提案します。
この機能は、最後に閉じた位置のチケット番号を定義します。
チケットの番号とその後の対応は、解決すべき問題に応じてプログラマーの判断に委ねられます。
関数 FindNearFractal()。
この関数は、最も近いフラクタル素片を検索し、その価格水準を返す。この関数は、以下のオプションパラメータを受け付ける。
FindNearFractal()の使用例です。
.
SZY. FindNearFractal()関数をテストするスクリプトを添付しています。
Примеры использования функции SetVLine().
ЗЫ. Во вложении скрипт для тестирования функции SetVLine().
SetVLine()の使用例です。
ZS. SetVLine()関数をテストするスクリプトを添付します。
イゴールさん、こんにちは。
このような関数をインジケータで使用する場合の例を教えてください。
PreviousiHighsvAndhLows0のインジケータを改良して、時間によるマークを付けようとしています。
SetVLine()の例で、バーオープン時に一定時間でマークを描画する...
これまで、私のバージョンはナンセンスなものを描いてきました。
すでにフォーラムで相談しているのですが、ここでは初心者は甘えられないので...。
ありがとうございます。
このような関数をインジケータで使用する場合の例を教えてください。
インジケーターを改良して、タイムスタンプの描画を追加しようと思っているんだ。
SetVLine()の例で、ある時間のバーが開くときにマークを描く...
どのマークを描きたいかをイラストで示す。
GetExtremumZZZBar()関数。
この関数は、標準カスタムジグザグインジケータの 極値を検索し、バー番号を返します。この関数は、以下のオプションパラメータを受け付ける。
GetExtremumZZZBar()関数の使用例です。
ZS. GetExtremumZZZBar() 関数をテストするスクリプトを添付します。
どのマークを描きたいかをイラストで示す。
イゴールさん、ご回答ありがとうございました。
2日かかりましたが、マークを作りました。
今はもう一回やろうと思っています。
テスト用に必要
御社のi-AnyRangeインジケータを利用して
インジケータは、ランダムな偏差で時間を処理します。
例えば-。
インジケータは
time1=10:05です。
time2=15:35。
を使用し、インジケーター自体のインジケーターラインの計算には
T1=time1(+/-ランダム)
T2=time2(+/-ランダム)
しかし、最大偏差の制限も設定する必要があります。
最大ランダム =5min;
難問は、ランダム性を5分間に制限する方法だけですか?
皆さんも似たような例があるのではないでしょうか。
が、最大偏差の制限も設定する必要があります。
最大ランダム =5min;
つまるところ、ランダム性を5分間に制限するにはどうしたらいいかということです。
似たような事例があるのでしょう。
5分間は300秒です。
5分といえば300秒。
もちろん、ありがとうございます。でも、質問の答えにはなっていません。
文字列にint bを追加する方法 Time2 minutes now or how to make plus minus random
>>もちろん調べますが、なかなか難しいです。