//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 10.05.2008 |//| Описание : Возвращает корреляцию двух рядов. |//+----------------------------------------------------------------------------+//| Параметры: |//| x - массив значений первого ряда |//| y - массив значений второго ряда |//+----------------------------------------------------------------------------+doubleCorrelation(double& x[], double& y[]){double co=0, sa=0, sb=0, sc=0, xs=0, ys=0;
inti, k=MathMin(ArraySize(x), ArraySize(y));
if(k>0){for(i=0; i<k; i++){xs+=x[i]; ys+=y[i];
}xs/=k; ys/=k;
for(i=0; i<k; i++){sa+=(x[i]-xs)*(y[i]-ys);
sb+=(x[i]-xs)*(x[i]-xs);
sc+=(y[i]-ys)*(y[i]-ys);
}sb=MathSqrt(sb*sc);
if(sb!=0)co=sa/sb;
}return(co);
}
ZS: Im Trailer befindet sich ein Skript zum Testen der Funktion Correlation().
Diese Funktion gibt den Index der letzten offenen Position oder -1 zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter definiert:
sy - Bezeichnung des Marktinstruments. Wenn wir diesen Parameter setzen, berücksichtigt die Funktion nur Positionen des angegebenen Instruments. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает индекс последней открытой позиции или -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+intGetIndexLastPos(stringsy="", intop=-1, intmn=-1){datetimeo;
inti, k=OrdersTotal(), r=-1;
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(o<OrderOpenTime()){o=OrderOpenTime();
r=i;
}}}}}}}return(r);
}
ZS: Im Anhang finden Sie ein Skript zum Testen der Funktion GetIndexLastPos().
Diese Funktion gibt die Losgröße der letzten offenen Position oder -1 zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter definiert:
sy - Bezeichnung des Marktinstruments. Wenn Sie diesen Parameter setzen, berücksichtigt die Funktion nur Positionen des angegebenen Instruments. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает размер лота последней открытой позиции или -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+doubleGetLotLastPos(stringsy="", intop=-1, intmn=-1){datetimeo;
doublel=-1;
inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(o<OrderOpenTime()){o=OrderOpenTime();
l=OrderLots();
}}}}}}}return(l);
}
ZS: Im Anhang finden Sie ein Skript zum Testen der Funktion GetLotLastPos().
Diese Funktion gibt den Index der zuletzt geöffneten Position oder -1 zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter festgelegt:
ZS: Im Anhang finden Sie ein Skript zum Testen der Funktion GetIndexLastPos().
Wie lautet der Index? Handelt es sich um die Nummer des zuletzt geöffneten Balkens? Oder etwas anderes?
rid писал (а): Was ist der Index? Handelt es sich um die Balken-Nummer der letzten offenen Position? Oder etwas anderes?
Dies ist die laufende Nummer der Position in der Liste der offenen Positionen und eingestellten Aufträge. Die Nummerierung beginnt bei Null und ist für Positionen und Aufträge identisch.
Lieber Igor, bitte hilf mir. Das Problem ist, dass ich nirgendwo den Code finden kann, wie man MA mit CCI oder Stoch verbindet. Das Kauf- oder Verkaufssignal sollte generiert werden, wenn dieser МА das CCI-Niveau überschreitet, z.B. +100/-100.
Vielleicht gibt es einen Expert Advisor, der den von mir benötigten Code verwendet?
Diese Funktion gibt die maximale Losgröße aus der Anzahl der offenen Positionen zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter festgelegt:
sy - Bezeichnung des Marktinstruments. Wenn dieser Parameter gesetzt ist, berücksichtigt die Funktion nur Positionen des angegebenen Symbols. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает максимальный размер лота из открытых позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+doubleGetMaxLotFromOpenPos(stringsy="", intop=-1, intmn=-1){doublel=0;
inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(l<OrderLots())l=OrderLots();
}}}}}}return(l);
}
ZS: Im Trailer befindet sich ein Skript zum Testen der Funktion GetMaxLotFromOpenPos().
Diese Funktion liefert die minimale Losgröße aus der Anzahl der offenen Positionen. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter festgelegt:
sy - Bezeichnung des Marktinstruments. Wenn dieser Parameter gesetzt ist, berücksichtigt die Funktion nur Positionen des angegebenen Symbols. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает минимальный размер лота из открытых позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+doubleGetMinLotFromOpenPos(stringsy="", intop=-1, intmn=-1){doublel=0;
inti, k=OrdersTotal();
if(sy=="0")sy=Symbol();
for(i=0; i<k; i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==sy || sy==""){if(OrderType()==OP_BUY || OrderType()==OP_SELL){if(op<0 || OrderType()==op){if(mn<0 || OrderMagicNumber()==mn){if(l==0 || l>OrderLots())l=OrderLots();
}}}}}}return(l);
}
HH: Im Anhang finden Sie ein Skript zum Testen der Funktion GetMinLotFromOpenPos().
Lieber Igor, bitte hilf mir. Das Problem ist, dass ich nirgendwo den Code finden kann, wie man MA mit CCI oder Stoch verbindet. Das Kauf- oder Verkaufssignal sollte generiert werden, wenn dieser МА das CCI-Niveau überschreitet, z.B. +100/-100.
Vielleicht gibt es einen Expert Advisor, der den von mir benötigten Code verwendet?
Diese Frage ist offensichtlich nicht relevant. Ich werde Ihnen ein Beispiel für ein solches Codefragment anhand von stochastischen und MA-Beispielen geben, um Igor nicht abzulenken.
Die Frage ist offensichtlich nicht themenbezogen. Um Igor nicht durch Kleinigkeiten abzulenken, gebe ich Ihnen ein Beispiel für ein solches Stück Code, das stochastische und
MA. Ich werde diesen Beitrag 24 Stunden lang aufbewahren - dann werde ich ihn löschen!
Die Funktion selbst:
ZS: Im Trailer befindet sich ein Skript zum Testen der Funktion Correlation().
GetIndexLastPos() Funktion.
Diese Funktion gibt den Index der letzten offenen Position oder -1 zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter definiert:
- sy - Bezeichnung des Marktinstruments. Wenn wir diesen Parameter setzen, berücksichtigt die Funktion nur Positionen des angegebenen Instruments. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
- op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
- mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
ZS: Im Anhang finden Sie ein Skript zum Testen der Funktion GetIndexLastPos().Die Funktion GetLotLastPos().
Diese Funktion gibt die Losgröße der letzten offenen Position oder -1 zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter definiert:
- sy - Bezeichnung des Marktinstruments. Wenn Sie diesen Parameter setzen, berücksichtigt die Funktion nur Positionen des angegebenen Instruments. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
- op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
- mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
ZS: Im Anhang finden Sie ein Skript zum Testen der Funktion GetLotLastPos().GetIndexLastPos() Funktion.
Diese Funktion gibt den Index der zuletzt geöffneten Position oder -1 zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter festgelegt:
ZS: Im Anhang finden Sie ein Skript zum Testen der Funktion GetIndexLastPos().Wie lautet der Index? Handelt es sich um die Nummer des zuletzt geöffneten Balkens? Oder etwas anderes?
Was ist der Index? Handelt es sich um die Balken-Nummer der letzten offenen Position? Oder etwas anderes?
Dies ist die laufende Nummer der Position in der Liste der offenen Positionen und eingestellten Aufträge. Die Nummerierung beginnt bei Null und ist für Positionen und Aufträge identisch.
Lieber Igor, bitte hilf mir. Das Problem ist, dass ich nirgendwo den Code finden kann, wie man MA mit CCI oder Stoch verbindet. Das Kauf- oder Verkaufssignal sollte generiert werden, wenn dieser МА das CCI-Niveau überschreitet, z.B. +100/-100.
Vielleicht gibt es einen Expert Advisor, der den von mir benötigten Code verwendet?
GetMaxLotFromOpenPos() Funktion.
Diese Funktion gibt die maximale Losgröße aus der Anzahl der offenen Positionen zurück. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter festgelegt:
- sy - Bezeichnung des Marktinstruments. Wenn dieser Parameter gesetzt ist, berücksichtigt die Funktion nur Positionen des angegebenen Symbols. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
- op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
- mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
ZS: Im Trailer befindet sich ein Skript zum Testen der Funktion GetMaxLotFromOpenPos().GetMinLotFromOpenPos() Funktion.
Diese Funktion liefert die minimale Losgröße aus der Anzahl der offenen Positionen. Eine genauere Auswahl der zu prüfenden Positionen wird durch externe Parameter festgelegt:
- sy - Bezeichnung des Marktinstruments. Wenn dieser Parameter gesetzt ist, berücksichtigt die Funktion nur Positionen des angegebenen Symbols. Der Standardwert "" bedeutet ein beliebiges Marktinstrument. NULL bedeutet das aktuelle Instrument.
- op - Handelsoperation, Positionsart. Gültige Werte: OP_BUY, OP_SELL oder -1. Der Standardwert -1 bedeutet eine beliebige Position.
- mn - Positionsbezeichner, MagicNumber. Der Standardwert -1 bedeutet einen beliebigen Bezeichner.
HH: Im Anhang finden Sie ein Skript zum Testen der Funktion GetMinLotFromOpenPos().Lieber Igor, bitte hilf mir. Das Problem ist, dass ich nirgendwo den Code finden kann, wie man MA mit CCI oder Stoch verbindet. Das Kauf- oder Verkaufssignal sollte generiert werden, wenn dieser МА das CCI-Niveau überschreitet, z.B. +100/-100.
Vielleicht gibt es einen Expert Advisor, der den von mir benötigten Code verwendet?
Diese Frage ist offensichtlich nicht relevant. Ich werde Ihnen ein Beispiel für ein solches Codefragment anhand von stochastischen und MA-Beispielen geben, um Igor nicht abzulenken.
MA. Ich werde den Beitrag für 24 Stunden aufbewahren - dann werde ich ihn löschen!
MA. Ich werde diesen Beitrag 24 Stunden lang aufbewahren - dann werde ich ihn löschen!