//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.08.2008 |//| Описание : Возвращает элемент ряда Фибоначчи по его порядковому номеру. |//+----------------------------------------------------------------------------+//| Параметры: |//| n - номер элемента ряда |//+----------------------------------------------------------------------------+intFibonacci(intn){inta=0, b=0, i=1, s=0;
if(n==1)s=1;
if(n>1){s=1;
while(i<n){i++;
a=b;
b=s;
s=a+b;
}}return(s);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 01.09.2005 |//| Описание : Возвращает наименование метода МА. |//+----------------------------------------------------------------------------+//| Параметры: |//| mm - идентификатор метода МА |//+----------------------------------------------------------------------------+stringGetNameMA(intmm){switch(mm){caseMODE_SMA : return("SMA");
caseMODE_EMA : return("EMA");
caseMODE_SMMA: return("SMMA");
caseMODE_LWMA: return("LWMA");
default : return("Unknown Method");
}}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 01.09.2005 |//| Описание : Возвращает ценовую разницу в пунктах между двумя барами. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий таймфрейм) |//| n2 - номер левого бара ( 2 - второй бар) |//| n1 - номер правого бара ( 1 - первый бар) |//| Возвращаемое значение: |//| положительное - между барами N2 и N1 был рост курса |//| отрицательное - между барами N2 и N1 было снижение курса |//+----------------------------------------------------------------------------+intGetPriceDiffInPoint(stringsy="0", inttf=0, intn2=2, intn1=1){if(sy=="" || sy=="0")sy=Symbol();
doublep=MarketInfo(sy, MODE_POINT);
intd=MarketInfo(sy, MODE_DIGITS);
intdd=0, k=iBars(sy, tf);
if(n1>k || n2>k)Print("GetPriceDiffInPoint(): Недостаточно баров для ",sy,"",GetNameTF(tf));
else{if(n1>0 && n2>0){intd1=NormalizeDouble((iHigh(sy, tf, n1)-iLow(sy, tf, n2))/p, d);
intd2=NormalizeDouble((iLow(sy, tf, n1)-iHigh(sy, tf, n2))/p, d);
if(MathAbs(d1)>MathAbs(d2))dd=d1;
if(MathAbs(d1)<MathAbs(d2))dd=d2;
if(MathAbs(d1)==MathAbs(d2)){if(iOpen(sy, tf, n2)>iClose(sy, tf, n1))dd=d2; elsedd=d1;
}}}return(dd);
}
GetNearestDownFractal()の使用例です。
。
。
SZY. GetNearestUpFractal()関数をテストするスクリプトを添付しています。
CorrectTF()関数。
この関数は、インジケータやEAの入力パラメータに、誤ったタイムフレーム(分単位の整数)を簡単に指定できることがあることを発見した後に書きました。例えば、時間給を60ではなく50と入力した。まあ...という感じです。iRSI()関数が不正確な時間枠に対してゼロを返すことが判明しました。その他の機能については、チェックしていないので何とも言えません。私の不注意からくる誤解を避けるため、この機能は原始的なフールプルーフとして書きました。入力されたパラメータを「最も近い」適切かつ正しい時間軸に調整し、その値を返す。
SZY. CorrectTF()関数をテストするためのスクリプトを添付します。DateBeginQuarter()関数を使用します。
この関数は、四半期の開始日をその番号で返します。例えば、現在が2008年8月27日であれば、当四半期の開始日は2008年7月1日となります。この関数が受け取るパラメータは1つだけで、それは現在の四半期を基準とした四半期番号です。例えば、0は 現在の四半期、1は 次の四半期、- 1は前の四半期を表します。つまり、正の四分の一の数字は未来の日付を要求し、0と負の数字は過去の日付を要求します。1970年1月1日00時00分からの経過秒数が返される。
P.S. DateBeginQuarter() 関数をテストするスクリプトを添付します。
DateOfMonday()関数を使用します。
この関数は、その週の開始日(月曜日)を番号で返します。例えば、現在が2008年8月29日であれば、現在の週の始まりの日付は2008年8月25日になります。この関数は、現在の週からの相対的な週数という1つのパラメータだけを受け取ります。例えば、0が 現在の週、1が 次の週、-1が 前の週です。つまり、正の週番号は未来の日付を要求し、0と負の週番号は過去の日付を要求する。1970年1月1日00時00分からの経過秒数が返される。
追伸:DateOfMonday()関数をテストするスクリプトを添付します。
フィボナッチ()関数です。
この関数は、フィボナッチ級数の要素をそのシーケンス番号で返します。
追伸:Fibonacci()をテストするスクリプトを添付します。
GetNameMA()関数。
この関数は、MA のメソッド名(移動平均)を識別子で返します。コメントやインジケーター、Expert Advisorのメッセージに使用すると便利な機能です。
GetNameMA()関数。
この関数は、MA のメソッド名(移動平均)を識別子で返します。この機能は、コメント、インジケーター、Expert Advisorで有効です。
小難しいことを考えないでください・・・。
ナンパと思わないでください...。
ぜひともおつかれさまでした修正しました。
こんにちは。
エキスポをほんの少し伝えるのを手伝ってください。
条件付きでこのスタックを閉じないで、注文を開けるなんて。
すなわち、案件が1つだけならポーズから抜け出し、案件が2つならシャットダウンしてしまうのです。
GetPriceDiffInPoint()関数。
この関数は、番号で指定された 2 本のバーの価格差を返す。この機能を開発した目的は、値動きの価値と方向を判断することであった。GetPriceDiffInPoint()関数は、考慮するバーの基準点(OpenまたはHighまたはLowまたはClose)を決定します。この関数は、以下のオプションパラメータを受け付ける。
戻り値です。