Caro KimIV, vorrei chiederti di modificare e-SOTrailing nel modo seguente: (Tutta la tattica in questo caso è di piazzare gli ordini stop ad una certa distanza dal frattale più vicino e di spostarli dopo il prezzo). Immagino che non sia così difficile usare la tua funzione FindNearFractal, forse?
Questa funzione calcola e restituisce il conteggio Z della serie di numeri passati nell'array per riferimento.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 27.10.2008 |//| Описание : Возвращает Z-счёт числового ряда. |//+----------------------------------------------------------------------------+//| Параметры: |//| arr - массив значений числового ряда |//+----------------------------------------------------------------------------+double ArrayZ(double& arr[]){double x, z;int i, l=0, n=ArraySize( arr), r=1, w=0;for( i=0; i< n; i++){if( i==0) r=1;else{if( arr[ i-1]* arr[ i]<0) r++;}if( arr[ i]>0) w++;else l++;}if( n>2){if( w>0&& l>0){
x=2* w* l;if( x!= n) z=( n*( r-0.5)- x)/MathSqrt( x*( x- n)/( n-1));}else{if( l==0) z=100;else z=-100;Print("ArrayZ(): Нет чередования серий!");}return( z);}else{Print("ArrayZ(): В массиве недостаточно элементов!");return(0);}}
SZ. In allegato c'è uno script per testare la funzione ArrayZ(). A proposito, questo script riempie l'array con i dati del libro di Ralph Vince "The Mathematics of Capital Management".
ZZZ. Ho aggiornato la libreria b-Array sul mio sito web.
Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato rimosso nulla. La funzione ArrayDeleteInt() accetta i seguenti parametri obbligatori:
m - Matrice di elementi.
i - Indice dell'elemento della matrice.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 31.10.2008 |//| Описание : Выполняет удаление элемента массива с заданным индексом. |//| Возвращает размер нового массива или -1, |//| если не удалось ничего удалить. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| i - индекс элемента |//+----------------------------------------------------------------------------+int ArrayDeleteInt(int& m[],int i){int j, k=ArraySize( m);if( i>=0&& i< k){for( j= i; j< k; j++) m[ j]= m[ j+1];
k=ArrayResize( m, k-1);return( k);}elsePrint("ArrayDeleteInt(): Неверный индекс элемента массива! i=", i);return(-1);}
ZS. In allegato c'è uno script per testare la funzione ArrayDeleteInt().
Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato cancellato nulla. La funzione ArrayDeleteDouble() accetta i seguenti parametri obbligatori:
m - Matrice di elementi di tipo doppio.
i - Indice dell'elemento della matrice.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 31.10.2008 |//| Описание : Выполняет удаление элемента массива с заданным индексом. |//| Возвращает размер нового массива или -1, |//| если не удалось ничего удалить. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| i - индекс элемента |//+----------------------------------------------------------------------------+int ArrayDeleteDouble(double& m[],int i){int j, k=ArraySize( m);if( i>=0&& i< k){for( j= i; j< k; j++) m[ j]= m[ j+1];
k=ArrayResize( m, k-1);return( k);}elsePrint("ArrayDeleteDouble(): Неверный индекс элемента массива! i=", i);return(-1);}
P.S. In allegato c'è uno script per testare la funzione ArrayDeleteDouble().
Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato possibile rimuovere nulla. La funzione ArrayDeleteString() accetta i seguenti parametri obbligatori:
m - Matrice di elementi di tipo stringa.
i - Indice dell'elemento della matrice.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 31.10.2008 |//| Описание : Выполняет удаление элемента массива с заданным индексом. |//| Возвращает размер нового массива или -1, |//| если не удалось ничего удалить. |//+----------------------------------------------------------------------------+//| Параметры: |//| m - массив элементов |//| i - индекс элемента |//+----------------------------------------------------------------------------+int ArrayDeleteString(string& m[],int i){int j, k=ArraySize( m);if( i>=0&& i< k){for( j= i; j< k; j++) m[ j]= m[ j+1];
k=ArrayResize( m, k-1);return( k);}elsePrint("ArrayDeleteString(): Неверный индекс элемента массива! i=", i);return(-1);}
ZS. In allegato c'è uno script per testare la funzione ArrayDeleteString().
qui
Grazie, ieri non c'era o me lo sono perso.
Grazie, ieri non c'era o me lo sono perso.
>> non lo era.
Sì, ora questo.
#include "b-KimIV.mqh" // Libreria di funzioni aggiuntive
Caro KimIV, vorrei chiederti di modificare e-SOTrailing nel modo seguente: (Tutta la tattica in questo caso è di piazzare gli ordini stop ad una certa distanza dal frattale più vicino e di spostarli dopo il prezzo). Immagino che non sia così difficile usare la tua funzione FindNearFractal, forse?
void TrailingOrders() {
......
pa=FindNearFractal(OrderSymbol(), 0, MODE_UPPER); //MarketInfo(OrderSymbol(), MODE_ASK);
......
pb=FindNearFractal(OrderSymbol(), 0, MODE_LOWER);//MarketInfo(OrderSymbol(), MODE_BID);
Sì, ora questo.
#include "b-KimIV.mqh" // Libreria di funzioni aggiuntive
>> più tardi.
È già impossibile in prima pagina...
Lo posterò qui... Se il post da aggiornare viene bloccato, lo ripubblicherò. Quindi tenete d'occhio il thread :-)
Grazie - questo è quello giusto.
La funzione ArrayZ().
Questa funzione calcola e restituisce il conteggio Z della serie di numeri passati nell'array per riferimento.
SZ. In allegato c'è uno script per testare la funzione ArrayZ(). A proposito, questo script riempie l'array con i dati del libro di Ralph Vince "The Mathematics of Capital Management".
ZZZ. Ho aggiornato la libreria b-Array sul mio sito web.
La funzione ArrayDeleteInt()
Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato rimosso nulla. La funzione ArrayDeleteInt() accetta i seguenti parametri obbligatori:
- m - Matrice di elementi.
- i - Indice dell'elemento della matrice.
ZS. In allegato c'è uno script per testare la funzione ArrayDeleteInt().Funzione ArrayDeleteDouble()
Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato cancellato nulla. La funzione ArrayDeleteDouble() accetta i seguenti parametri obbligatori:
- m - Matrice di elementi di tipo doppio.
- i - Indice dell'elemento della matrice.
P.S. In allegato c'è uno script per testare la funzione ArrayDeleteDouble().La funzione ArrayDeleteString()
Esegue la cancellazione di un elemento dell'array con l'indice dato. Restituisce la dimensione del nuovo array o -1 se non è stato possibile rimuovere nulla. La funzione ArrayDeleteString() accetta i seguenti parametri obbligatori:
- m - Matrice di elementi di tipo stringa.
- i - Indice dell'elemento della matrice.
ZS. In allegato c'è uno script per testare la funzione ArrayDeleteString().