Как кодировать? - страница 194

 

Модификация советника

Здравствуйте,

Если есть опытный программист, который может модифицировать мой советник,

я был бы очень рад.

СОСТОЯНИЕ ОТКРЫТОГО ОРДЕРА СЕЙЧАС:

BUY:

T_S -> Blue

%WPR > -20

DeMarker > Быстрая МА

Быстрая МА > Медленная МА

ПРОДАВАТЬ:

T_S -> красный

%WPR < -80

DeMarker < Fast MA

Быстрая МА < Медленная МА

Поскольку это посылает слишком много ложных сигналов,

Я ХОЧУ ИЗМЕНИТЬ ЕГО:

ОТКРЫВАТЬ ОРДЕР НА ПОКУПКУ, КОГДА

1- Быстрая МА < 0.5 (настраивается, например: 0.45, 0.52 и т.д.)

и DemarkLine пересекает вверх.

2- Условное подтверждение (сделать его выбираемым):

открыть ордер, когда %WPR > -20,

но условие открытия ордера и подтверждение

не могут быть дальше, чем определенное количество баров.

(сделать количество регулируемым)

если условие происходит более одного раза,

должно быть столько открытий ордеров, сколько

условий - пока не наступит условие выхода

или наступления условия продажи.

первичный ордер на покупку EXIT1:

когда демаркационная линия пересекает вниз быструю МА

в области покупки >0.65 (число регулируется)

и КОНДИЦИОННЫЙ:

Этот вариант возможен только при

фиксированный максимум %WPR -10 и минимум -90 !!!

Выход при пересечении вниз демаркальной линии

в области > 0,7 (настраивается)

например: линия демарка 0.75 и %WPR -15

Опция трейлинг-стопа

автоматический stopLoss должен быть опциональным (из IndicatorT_S)

Файлы:
 

Может ли кто-нибудь запрограммировать этот простой OB/OS indi?

Вот формула: (highopen) + (close-low) / (2 x Range).

Уровни: 64 и 37

Спасибо

 

Пожалуйста, помогите мне модифицировать этот советник

Здравствуйте.

Пожалуйста, помогите мне модифицировать этот простой советник.

Это хеджевый советник, который открывает позиции на покупку GBP/USD и продажу EUR/USD в одно и то же время.

Когда позиции получают прибыль, советник закрывает обе позиции.

Проблема в том, что когда позиции имеют большой DD, советник не открывает еще 2 позиции, и слишком долго ждет, пока позиции перейдут в прибыль.

Мне нужно, чтобы когда позиции имеют DD 20 пунктов, советник открывал новые 2 позиции, как первые 2 позиции. И когда новые 2 позиции имеют прибыль, советник закрывал только последние 2 позиции, и все еще ждал других позиций, которые в убытке.

Например:

Советник открывает позиции на покупку GBP/USD и продажу EUR/USD.

Если эти 2 позиции просели на 20 пунктов, то советник открывает новые 2 позиции Buy GBP/USD и Sell EUR/USD.

Если вторые 2 позиции снова имеют DD 20 пунктов, то советник снова открывает новые 2 позиции ........etc.......

Если последние 2 открытые позиции имеют прибыль 20 пунктов, то советник должен закрыть эти 2 последние позиции.

В двух словах - советник должен открыть несколько позиций Buy GBP/USD и Sell EUR/USD, если последние 2 позиции имеют DD 20 пунктов, и закрыть последние 2 позиции, которые имеют прибыль 20 пунктов.

Спасибо за помощь.

Файлы:
 

Пятизначный брокер, ошибка 130, helppppppp!!!!

Привет всем:

Несколько дней назад ODL (где у меня демо-счет) перешел на пятизначные цены, после чего все мои ордера стали присылать мне оповещение с сообщением об ошибке 130 (invalid stops or unnormalized), до этого у меня никогда не было такой проблемы. Поискав, я нашел код 'patch' при переходе брокера на пятизначную цену:

double dXPoint=1;

if(Digits==3 || Digits==5){

dXPoint=10;

}

[/CODE]

With this little change, my buy function now is (later dXPoint will be global, also i tried leaving it as global, without success)

[CODE]

int openBuy() {

double dXPoint=1;

if(Digits==3 || Digits==5){

dXPoint=10;

}

double price=NormalizeDouble(Ask,Digits);

double sl=price-(stopLoss*dXPoint*Point);

double tp=price+(takeProfit*dXPoint*Point);

//Alert("PRICE: ",DoubleToStr(price,Digits)," sl: ",DoubleToStr(sl,Digits)," tp: ",DoubleToStr(tp,Digits));

orderActual = OrderSend(Symbol(), OP_BUY, LotSize(), price, Slippage*dXPoint,sl, tp, "BUY", g_magic_128, 0, Green);

if (orderActual < 1){

Alert("Order " , OrderTicket() , " Error:" , GetLastError() );

return (0);

}

return (1);

}

Когда stopLoss и takeProfit равны "0", ордера открываются, но когда они больше нуля, я получаю ошибку 130, (я пересмотрел значения stoploss и takeprofit, чтобы не быть рядом с ценой, так что ошибка не в этом), я также попробовал нормализовать переменные 'sl' и 'tp' без успеха, когда я вижу цены в закомментированной строке оповещения, значения цен правильные, так что я не знаю, что случилось с моим кодом, ПОЖАЛУЙСТА ПОМОГИТЕ!!!!

СПАСИБО БОЛЬШОЕ РЕБЯТА!!!

 

NoLag V7.1 Каковы значения индикатора для советника?

Я не могу понять, как эти значения переводятся в советник.

Я успешно превратил его в прямую линию, используя эти настройки из сообщения Igors:

iCustom(NULL,0,"nonlagma_3",0,15,0,0,10,0,0.0)

Я хотел бы сместить и сдвинуть MA, хотя... Я хочу сохранить кривые.

Я пробовал менять начальные значения в коде, но, похоже, это не работает.

Я хочу:

//---- входные параметры

extern int Price = 3; //Применяется к Price(0-Close;1-Open;2-High;3-Low;4-Medianprice;5-Typical price;6-Weighted Close)

extern int Length = 45; //Период NonLagMA

extern int Displace = 0; //DispLace или Shift

extern double PctFilter = 0; //Динамический фильтр в десятичном исчислении

extern int Color = 1; //Переключение цветового режима (1-цветный)

extern int ColorBarBack = 1; //Выключение цветного режима

extern double Deviation = -3; //Отклонение вверх/вниз

extern int AlertMode = 0; //Переключатель звукового оповещения (0-выкл., 1-вкл.)

extern int WarningMode = 0; //Переключатель звукового предупреждения (0-off,1-on)

Любая помощь будет оценена по достоинству.

Спасибо

 

В советнике необходимо использовать следующий код:

- for trend or direction(up = 1, down=-1)

trend=iCustom(Symbol(),TimeFrame,"NonLagMA_v7.1",Price,Length,Dispalce,PctFilter,Color,ColorBarBack,Deviation,0,0,3,bar);

[/CODE]

- for curve

[CODE]

line=iCustom(Symbol(),TimeFrame,"NonLagMA_v7.1",Price,Length,Dispalce,PctFilter,Color,ColorBarBack,Deviation,0,0,0,bar);

Если вы хотите построить график NonLagMA с некоторым отклонением, то используйте небольшие значения для этого (например, 0.5 или -0.5).

grstaka:
Я никак не могу понять, как эти значения передаются советнику.

Я успешно превратил его в прямую линию, используя эти настройки из сообщения Igors:

iCustom(NULL,0,"nonlagma_3",0,15,0,0,10,0,0.0)

Я хотел бы сместить и сдвинуть MA, хотя... Я хочу сохранить кривые.

Я пробовал менять начальные значения в коде, но, похоже, это не работает.

Я хочу:

//---- входные параметры

extern int Price = 3; //Применяется к Price(0-Close;1-Open;2-High;3-Low;4-Median price;5-Typical price;6-Weighted Close)

extern int Length = 45; //Период NonLagMA

extern int Displace = 0; //DispLace или Shift

extern double PctFilter = 0; //Динамический фильтр в десятичном исчислении

extern int Color = 1; //Переключение цветового режима (1-цветный)

extern int ColorBarBack = 1; //Обратная полоса для цветового режима

extern double Deviation = -3; //Отклонение вверх/вниз

extern int AlertMode = 0; //Переключатель звукового оповещения (0-выкл., 1-вкл.)

extern int WarningMode = 0; //Переключатель звукового предупреждения (0-off,1-on)

Любая помощь будет принята с благодарностью.

Спасибо
 

Спасибо!

igorad:
В советнике вы должны использовать следующий код:

- для тренда или направления (вверх = 1, вниз = 1)

trend=iCustom(Symbol(),TimeFrame,"NonLagMA_v7.1",Price,Length,Dispalce,PctFilter,Color,ColorBarBack,Deviation,0,0,3,bar);

[/CODE]

- for curve

[CODE]

line=iCustom(Symbol(),TimeFrame,"NonLagMA_v7.1",Price,Length,Dispalce,PctFilter,Color,ColorBarBack,Deviation,0,0,0,bar);

Если вы хотите построить график NonLagMA с некоторым отклонением, то используйте небольшие значения для этого (например, 0.5 или -0.5).

Спасибо!!!!

Что означает бар? Это +1 -1 бар?

 

Раз уж я взялся за это...

...вы знаете, почему мои индикаторы постоянно перезагружаются каждые 1-5 минут на симе?

 

Помогите с переходом на пятизначные цифры

Привет всем:

Я был бы очень признателен за вашу помощь в этом вопросе, брокер, у которого я имею демо-счет, изменил пятизначные цены, в связи с этим все мои ордера стали посылать мне оповещение с сообщением об ошибке 130 (invalid stops or unnormalized). Поискав, я нашел код 'patch', когда брокер переходит на пятизначные цены. С этим изменением моя функция покупки теперь работает так:

int openBuy() {

double dXPoint=1;

if(Digits==3 || Digits==5){

dXPoint=10;

}

double price=NormalizeDouble(Ask,Digits);

double sl=price-(stopLoss*dXPoint*Point);

double tp=price+(takeProfit*dXPoint*Point);

//Alert("PRICE: ",DoubleToStr(price,Digits)," sl: ",DoubleToStr(sl,Digits)," tp: ",DoubleToStr(tp,Digits));

orderActual = OrderSend(Symbol(), OP_BUY, LotSize(), price, Slippage*dXPoint,sl, tp, "BUY", g_magic_128, 0, Green);

if (orderActual < 1){

Alert("Order " , OrderTicket() , " Error:" , GetLastError() );

return (0);

}

return (1);

}

Когда stopLoss и takeProfit равны "0", ордера открываются, но когда они больше нуля, я получаю ошибку 130, я пересмотрел значения stoploss и takeprofit, чтобы они не были близки к цене, так что ошибка не в этом, я также попробовал нормализовать переменные 'sl' и 'tp' без успеха, когда я вижу цены в закомментированной строке оповещения, значения цен правильные, так что я не знаю, что случилось с моим кодом, ПОЖАЛУЙСТА, ПОМОГИТЕ!!!!

СПАСИБО БОЛЬШОЕ РЕБЯТА!!!

 

Требуется помощь

Я надеюсь, что кто-нибудь сможет помочь, я запрограммировал значения RSI для 4 основных пар, чтобы они появлялись в главном окне графика, когда значение RSI равно 85 или больше, RSI становится КРАСНЫМ, когда меньше 15 - ЗЕЛЕНЫМ, когда посередине - СИНИМ.

Что происходит, программа делает все, что ожидает, когда значение меньше 15, оно остается СИНИМ, не уверен, что я сделал неправильно, я надеюсь, что кто-то может пролить на это свет.

Вот код, в котором у меня есть 4 цвета

color color_1 = 0, color_2 = 0, color_3 = 0, color_4 = 0;

if(sym_1 < 15) color_1 = Green;else color_1= Blue;

если(sym_1 >85) цвет_1 = Красный; иначе цвет_1 = Синий;

если(sym_2 < 15)color_2 = Green;else color_2 = Blue;

если(sym_2 >85) color_2 = Red; else color_2 = Blue;

если(sym_3 < 15)color_3 = Green;else color_3 = Blue;

если(sym_3 >85) color_3 = Red; else color_3 = Blue;

если(sym_4 < 15) color_4 = Green; else color_4 = Blue;

если(sym_4 >85) color_4 = Red; else color_4 = Blue;