Работает!! Только в том что я находил много лишнего, а я не знаю как это лишнее отсеять
А почему вы думаете, что там много лишнего ??? Если кто-то уже написал то, что вам нужно, значит он не писал лишнего, а? И наверняка именно для того, чтобы этим "лишним" не оказались деньги вашего депозита... Как думаете? Или тогда уж предложите, а главное - покажите то, что считаете лишним. Иначе - вам на форум телепатов.
а можно чтобы находилась первая стрелка и потом выход из цикла?
Какая из них? Любая? Или и та и другая, но только первые?
Если нужна любая первая - то при её нахождении - вываливайтесь из цикла, а если нужны и та и другая, то тут нужно цикл, вернее поиск внутри цикла переписывать.
Этот код ничего полезного не сделает - каждый раз при нахождении стрелки в цикле он будет присваивать переменным BarWithArrowUP и BarWithArrowDN номер бара, на котором найдена стрелка. Вам и решать как их обрабатывать. Можете создать массив, в который будете записывать бары со стрелками вверх и вниз, а потом уже брать из этих массивов номера баров со стрелками, а можете, а можете, а чё хотите, то и можете... :)
В вашем коде будет найдена самая первая стрелка от начала цикла. break прервёт выполнение цикла, а return нужен если только это у вас функция и вернёт она вам значение найденного буфера со стрелкой, а не номер бара, на котором стрелка эта стоит.
ой...значит я правильно написал ?
Мне не нужен номер бара.
Нужна любая самая первая стрелка и это значение запомнить .
По поводу return....То есть это значение в скобках и будет являться стрелкой? (а это значение можно как-то увидеть, пощупать, потрогать? Или это простое как есть напряжение в розетке или его нет ? То есть ноль и один ?)
По поводу своего кода хочу дополнительно уточнить синтаксис
for (int i=0; i<Bars(); i++)
{
signal = iCustom (NULL,0 и так далее... буфер стрелки вверх )
// а здесь нужно ещё вписать проверку буферов и для стрелки вверх и для стрелки вниз как вас ???То есть дописать signal2
signal2=iCustom (NULL,0 и так далее... буфер стрелки вниз )
// и здесь нужно ещё организовать проверку if (signal || signal2>0) запомнить значение и выход из цикла.
Блин..что-то я запутался... как вывести в return если у нас есть сигнал и сигнал2 что из них выводить если окажется больше нуля ???
А какой порядок подстановки баров вместо i в iCustom
for (i=0; i<nBars; i++) {
DataIndUP = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вверх, i)
DataIndDN = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вниз, i)
Например , перебираются все бары для первой функции стрелка вверх, а потом те же бары перебираются для функции вниз...?
То есть я хотел спросить, одновременно вычисляется значение для стрелки вверх и вниз на выбранном баре?
А какой порядок подстановки баров вместо i в iCustom
То есть я хотел спросить, одновременно вычисляется значение для стрелки вверх и вниз на выбранном баре?
Индикатор, если он рисует стрелки через буфер, может выводить только разными буферами разные стрелки. Поэтому стрелка вверх выводится одним буфером, стрелка вниз - другим. Для того, чтобы определить и найти обе стрелки - нужно проверять оба буфера.
В цикле, в самом его начале проверяются значения на 0-м баре при i=0, на следующей итерации цикла при i=1 проверяется первый бар, затем второй, третий и т.д. до i=nBars-1
В цикле проверяются значения обоих буферов на каждой итерации цикла.
double DataIndUP, DataIndDN;
int i, GlobalFlag, nBars = 250 ; // nBars = количество проверяемых баров вглубь историиfor (i=0; i<nBars; i++)
{
DataIndUP = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вверх, i)
DataIndDN = iCustom(Symbol(),Period(),"Имя индюшонка", через запятую все параметры индюка , номер буфера стрелки вниз, i)
if (DataIndUP !=EMPTY_VALUE) // или if (DataIndUP !=0) // найдена стрелка вверх
// всё зависит от того, что выдаёт буфер при отсутствии стрелки // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
GlobalFlag=+1 // присвоение значения +1(стрелка вверх) переменной
Break; //выход из цикла, так как нашлась последняя стрелка
if (DataIndDN !=EMPTY_VALUE) // или if (DataIndDN !=0) // найдена стрелка вниз
// всё зависит от того, что выдаёт буфер при отсутствии стрелки // нажмите Ctrl+D и посмотрите что вам в окне данных будет показано
GlobalFlag=-1 // присвоение значения -1(стрелка вниз) переменной
Break; //выход из цикла, так как нашлась последняя стрелка
}
А такая конструкция с подписанным GlobalFlag и оператором Break будет работать ?
Но перед этим нужно в блоке где инициализируются переменные проинициализировать и эту переменную ? И дать тип int ?????
Короче. Есть мысля про робота. сам естевственно программу написать не могу. кого заинтересует свистите.
Думаете, Вас тут свистом оглушат? Скорее - освистят ... :)
Идею выкладывайте - глядишь народец и пошевелится (при неплохости идеи)... А за оговоренное вознаграждение может даже чуть активнее шевеление будет ... :)
Выбрать нужное.
Работает!! Только в том что я находил много лишнего, а я не знаю как это лишнее отсеять
Спасибо !
а можно чтобы находилась первая стрелка и потом выход из цикла?
Какая из них? Любая? Или и та и другая, но только первые?
Если нужна любая первая - то при её нахождении - вываливайтесь из цикла, а если нужны и та и другая, то тут нужно цикл, вернее поиск внутри цикла переписывать.
Где-то так...
Этот код ничего полезного не сделает - каждый раз при нахождении стрелки в цикле он будет присваивать переменным BarWithArrowUP и BarWithArrowDN номер бара, на котором найдена стрелка. Вам и решать как их обрабатывать. Можете создать массив, в который будете записывать бары со стрелками вверх и вниз, а потом уже брать из этих массивов номера баров со стрелками, а можете, а можете, а чё хотите, то и можете... :)
В вашем коде будет найдена самая первая стрелка от начала цикла. break прервёт выполнение цикла, а return нужен если только это у вас функция и вернёт она вам значение найденного буфера со стрелкой, а не номер бара, на котором стрелка эта стоит.
ой...значит я правильно написал ?
Мне не нужен номер бара.
Нужна любая самая первая стрелка и это значение запомнить .
По поводу return....То есть это значение в скобках и будет являться стрелкой? (а это значение можно как-то увидеть, пощупать, потрогать? Или это простое как есть напряжение в розетке или его нет ? То есть ноль и один ?)
По поводу своего кода хочу дополнительно уточнить синтаксис
for (int i=0; i<Bars(); i++)
{
signal = iCustom (NULL,0 и так далее... буфер стрелки вверх )
// а здесь нужно ещё вписать проверку буферов и для стрелки вверх и для стрелки вниз как вас ???То есть дописать signal2
signal2=iCustom (NULL,0 и так далее... буфер стрелки вниз )
// и здесь нужно ещё организовать проверку if (signal || signal2>0) запомнить значение и выход из цикла.
Блин..что-то я запутался... как вывести в return если у нас есть сигнал и сигнал2 что из них выводить если окажется больше нуля ???
{ // Здесь нужны скобки ???
return(signal)
}
break
}А какой порядок подстановки баров вместо i в iCustom
А какой порядок подстановки баров вместо i в iCustom
То есть я хотел спросить, одновременно вычисляется значение для стрелки вверх и вниз на выбранном баре?Индикатор, если он рисует стрелки через буфер, может выводить только разными буферами разные стрелки. Поэтому стрелка вверх выводится одним буфером, стрелка вниз - другим. Для того, чтобы определить и найти обе стрелки - нужно проверять оба буфера.
В цикле, в самом его начале проверяются значения на 0-м баре при i=0, на следующей итерации цикла при i=1 проверяется первый бар, затем второй, третий и т.д. до i=nBars-1
В цикле проверяются значения обоих буферов на каждой итерации цикла.
А такая конструкция с подписанным GlobalFlag и оператором Break будет работать ?
Но перед этим нужно в блоке где инициализируются переменные проинициализировать и эту переменную ? И дать тип int ?????
Короче. Есть мысля про робота. сам естевственно программу написать не могу. кого заинтересует свистите.
Короче. Есть мысля про робота. сам естевственно программу написать не могу. кого заинтересует свистите.
Думаете, Вас тут свистом оглушат? Скорее - освистят ... :)
Идею выкладывайте - глядишь народец и пошевелится (при неплохости идеи)... А за оговоренное вознаграждение может даже чуть активнее шевеление будет ... :)
Короче. Есть мысля про робота. сам естевственно программу написать не могу. кого заинтересует свистите.