[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 465
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите разобраться с кодом. Как описать правильно условие я не знаю.
Вот кусок советника.
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
Понимаю что психологический фактор мне мешает...жадность.. страх даже 300 р потерять.. Что делать?... забыть что реал счет?..
Что если поменять орентировку??? Не "стремиться выграть", а "стремиться не проиграть".
Помогите разобраться!
Суть идеи: пока iMACD возрастает - держим BUY, как только начинает падение - закрываем BUY и открываем SELL. Сравнение идёт по трём последним значениям, за исключением текущего.
Проблема кода: открывает множество ордеров при значениях iMACD +-0, как я понял. Normalizedouble() не помогает.
Вот код:
Помогите разобраться с кодом. Как описать правильно условие я не знаю.
Вот кусок советника.
total=OrdersTotal();
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
Так не идет что ли?
нет через if не работает.
Нужно так, пока условие (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 правильное, открывать только оредра на селл при условии что iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
Аналогично наоборот.
А можно это как то оформить через while или bool? В програмировании полный кран. Логическую цепочку я понимаю, а воплотить в код руки кривые.
нет через if не работает.
Нужно так, пока условие (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2 правильное, открывать только оредра на селл при условии что iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
Аналогично наоборот.
А можно это как то оформить через while или bool? В програмировании полный кран. Логическую цепочку я понимаю, а воплотить в код руки кривые.
Здравствуйте! Не хочется (а бывает) попадать на StopOut. Решил ограничить лот значением, которое бы на "захватывало" StopOut в самых худших условиях. Методом проб и ошибок иду долго. Может у кого решение есть?
Исходные данные:
- валютная пара - не обязательно EURUSD
- прайс (цена покупки/продажи)
- заданный StopLoss в пунктах (предполагается, что худшие условия -не поймать StopOut даже при достижении уровня StopLoss)
- заданное значение лота
- остальные значения вытаскивать функциями МТ4: размер 1 лота, плечо, кросс курс
Желательно бы код.
В теории я понимаю надо: баланс минус возможный убыток на уровне СтопЛосс разделить на залог. И эта величина должна быть больше, чем StopOut (в процентах)
Помогите разобраться!
Суть идеи: пока iMACD возрастает - держим BUY, как только начинает падение - закрываем BUY и открываем SELL. Сравнение идёт по трём последним значениям, за исключением текущего.
Проблема кода: открывает множество ордеров при значениях iMACD +-0, как я понял. Normalizedouble() не помогает.
Вот код:
Может проблема в этом была
открывать пока деньги не кончатся? или открывать 1 раз в бар? или 1 раз в тик?
Уловие проверяется каждый новый бар. В данном случаи тайм фрейм часовка. Это условие проверяется в начале каждого часа.
Может проблема в этом была
Нет.. Сделал, как вы предложили - то же осталось.
Так же, я менял код, разделяя отдельно на блоки открытия и закрытия по условиям. Всё одно. Не знаю, что и делать уже.
Вот скрин из тестера, советник для тестера в прицепе: