//ARM #property indicator_chart_window //---- input parameters extern int AR_Period = 14; //------------------------- string SYMB[100]; string TEXT[100]; double ARM[100]; //---------------- int init( ) { return( 0 ); } //------------- int deinit( ) { Comment( " " ); return( 0 ); } //------------- int start( ) { int i; string text; int error = 0; int Handle = FileOpen( "Symbols.txt", FILE_CSV | FILE_READ, "," ); if( Handle < 0 ) { error = GetLastError( ); if( error == 4103 ) { Alert( "ARM файл с именем Symbols.txt не найден" ); } else { if( error != 0 ) { Alert( "ARM номер ошибки при открытии файла Symbols.txt ", error ); } } FileClose( Handle ); return( 0 ); } else { if( Handle > 0 ) { while( FileIsEnding( Handle ) == false ) { i++; text = FileReadString( Handle ); SYMB[i] = StringTrimRight( text ); if( FileIsEnding( Handle ) == true ) { break; } double tick = MarketInfo( SYMB[i], MODE_TICKSIZE ); int e = 1; double sum = 0; int sma = 0; while( e <= AR_Period ) { sum = sum + ( iHigh( SYMB[i], PERIOD_D1, e ) - iLow( SYMB[i], PERIOD_D1, e ) ); e++; } if( tick != 0 ) { sma = sum / AR_Period / tick; } ARM[i] = sma + 0.0001 * i; } // граница цикла while( FileIsEnding( Handle ) == false ) } // граница условий if( Handle < 0 ) } // else if( Handle > 0 ) FileClose( Handle ); //--------------------------- ArraySort( ARM, i, 0, MODE_DESCEND ); e = 0; while( e < i ) { int dd = MathFloor( ARM[e] ); double k = NormalizeDouble( 10000 * ( ARM[e] - dd ), 0 ); int f = k; TEXT[e] = SYMB[f] + " " + dd; e++; } error = 0; //---------------------------- int y; int handle0 = FileOpen( "ARM_f.txt", FILE_CSV | FILE_WRITE, "," ); if( handle0 < 0 ) { error = GetLastError( ); if( error == 4103 ) { Alert( "ARM файл с именем ARM_f.txt не найден " ); } else { if( error != 0 ) { Alert( "ARM код ошибки при попытке создать файл ARM_f.txt ", error ); } } FileClose( handle0 ); return( 0 ); } else { if( handle0 > 0 ) { for( y = 1; y <= i; y++ ) { if( TEXT[y] == "" ) { break; } int c = FileWrite( handle0, TEXT[y] ); if( c < 0 ) { Alert( "ARM код ошибки при записи файла ARM_f.txt ", GetLastError( ) ); FileClose( handle0 ); return( 0 ); } } // граница цикла for( y = 1; y <= i; y++ ) FileClose( handle0 ); } // граница условий if( handle < 0 ) } // else if( handle > 0 ) Comment( TEXT[1], "\n",TEXT[2], "\n",TEXT[3], "\n",TEXT[4], "\n",TEXT[5], "\n",TEXT[6], "\n",TEXT[7], "\n",TEXT[8], "\n",TEXT[9], "\n",TEXT[10], "\n",TEXT[11], "\n",TEXT[12], "\n",TEXT[13], "\n",TEXT[14], "\n",TEXT[15], "\n",TEXT[16], "\n",TEXT[17], "\n",TEXT[18], "\n",TEXT[19], "\n",TEXT[20], "\n",TEXT[21], "\n",TEXT[22], "\n",TEXT[23], "\n",TEXT[24], "\n",TEXT[25], "\n",TEXT[26], "\n",TEXT[27], "\n",TEXT[28], "\n",TEXT[29], "\n",TEXT[30], "\n",TEXT[31], "\n",TEXT[32] ); return(0); }