:laugh:Здравствуйте. Нужно прикрутить МартинГейл и ТроолингСтоп к этим советникам.
ОК, я взялся за переработку, но это займет какое-то время.с моей раней просьбой черт с ним, тогда попрошу не будите вы так любезны сделать в сове реверс, или с такой просьбой тоже в платную .....?
ОК, я взялся за переработку, но это займет какое-то время.
А под реверсом вы понимаете выставление Buy вместо Sell и наоборот?
Добрый день, у меня вопрос, возможно ли в сове прописать Машку, чтобы она находилась еще выше цены PRICE_HIGH? Заранее спасибо
Можно не только Машку, но Мишку :laugh:
Каков вопрос - таков и ответ. Прежде чем его задать нужно самому подумать...
p.s. А вообще то стоило прочитать первое сообщение темы.
Не факт...проще же ответить на вопрос, чем переделывать самому)
Ну, проверяй, уважаемый.Так точно уважаемый, спасибо.
Не факт...
Теперь разберем что же Вы хотите. Если PRICE_HIGH применяется как предопределенный идентификатор перечисления ENUM_APPLIED_PRICE применительно к вычисляемому значению индикатора скользящей средней iMA(), то это значение может быть выше только на нисходящем движении цены и то при определенных значениях задаваемого периода и метода усреднения самого индикатора...
Так что в итоге прописать то нужно? На бред похоже, не правда ли?
Включите в пост конкретный код и по нему задавайте вопросы - так будет гораздо понятнее.
int Shift2=Shift+1;
double MA = iMA(NULL,0,Periods,0,Sred,Price,Shift);
double MAA = iMA(NULL,0,Periods,0,Sred,Price,Shift2);
double MA1 = iMA(NULL,0,OnePeriod,1,OneSred,OnePrice,Shift);
double MA11 = iMA(NULL,0,OnePeriod,1,OneSred,OnePrice,Shift2);
if(MA>MA1 && MAA<=MA11){Signal=1;}
if(MA1>MA && MAA>=MA11){Signal=-1;}
//---------Если цена пошла в обратном направлении и достигла линии, ордера удаляются:-------
if(Signal==1){
CloseOrderSell();}
if(Signal==-1){
CloseOrderBuy();}
//------------------------------------Открытие ордеров-------------------------------------------------------
if(OneBuy() == 0 && Signal == 1)
{
if (TakeProfit!=0) TP = NormalizeDouble(Ask + TakeProfit*Point,Digits); else TP = 0;
if (StopLoss!=0) SL = NormalizeDouble(Bid - StopLoss*Point,Digits); else SL = 0;
OrderSend(Symbol(), OP_BUY, Lots, NormalizeDouble(Ask,Digits), Slippage, SL, TP, "Покупка", Magic, 0, Red);
}
if(OneSell() == 0 && Signal == -1)
{
if (TakeProfit!=0) TP = NormalizeDouble(Bid - TakeProfit*Point,Digits); else TP = 0;
if (StopLoss!=0) SL = NormalizeDouble(Ask + StopLoss*Point,Digits); else SL = 0;
OrderSend(Symbol(), OP_SELL, Lots, NormalizeDouble(Bid,Digits), Slippage, SL, TP, "Продажа", Magic, 0, Blue);
}
Спасибо дружище за помощь и аперативность, с меня куча спасибок каждый раз как увижу твой ник))) ша потестим)))Ну, проверяй, уважаемый.
Советник был полностью переписан, а именно:
Ну, и дополнительно - параметр Param_ReverseSignals, который переворачивает сигналы от обоих Envelopes.
- параметры, переменные, функции теперь имеют понятные имена, в отличие от первоначально декомпилированных непоняток
- удалены неиспользуемые переменные и функции
- код слегка оптимизирован по производительности (исключены повторяющиеся вызовы)
- исправлена ошибка при выставлении Sell ордеров
- исправлены все замечания (Warning) нового компилятора, который ругался на непроверенные OrderSelect/OrderModify/и т.д. - соответственно, добавлен вывод доп.информации в лог при возникновении ошибок
Логика работы советника (за исключением переворачивания сигналов) осталось нетронутой.
В общем - постарался привести в максимально красивое/удобоваримое/читабельное состояние.
Не, не сегодня - надо ж и на зарплату поработатьvlad_123,сделай пожалуйста тоже самое.
Спасибо дружище за помощь и аперативность, с меня куча спасибок каждый раз как увижу твой ник))) ша потестим)))
для этого и хочу пустить параллельную, для удаления ордеров[/PHP]
double MAh=MA+Delta*Point; // ма выше на Delta пунктов
double MAl=MA-Delta*Point; // ма ниже на Delta пунктов