Спрашивайте! - страница 52

 
pawang:

2.) Согласно пункту 1.) реальный случай - это... как создать бычью/медвежью дивергенцию?

При соблюдении условий: Есть самая высокая Цена и самый высокий RSI определенного таймфрейма. А затем, по истечении времени... мы встречаем новую самую высокую цену, но за ней не следует новый максимум RSI (RSI не может сделать новый максимум).

//this gives you highest/lowest prices on last 10 bars starting with current(last on the graph - zero bar)

double highestPrice = High;

double lowestPrice = Low;

/*

this gives you lowest/highest rsi on last 10 bars starting with current - 0 bar

*/

double lowestRSI=9999, highestRSI=-9999;

int currentBar = 0;

int endBar = 10;

for(currentBar=0; currentBar<endBar; currentBar++) lowestRSI = MathMin(lowestRSI, iRSI(Symbol(),0,14,PRICE_CLOSE,currentBar));

for(currentBar=0; currentBar<endBar; currentBar++) highestRSI = MathMax(lowestRSI, iRSI(Symbol(),0,14,PRICE_CLOSE,currentBar));

//starting at bar #10 you go back 10 bars on the chart looking for lowest price

//thus you'll get lowest price from bar #10 to bar #20

double lowestPrice10_20 = Low;

to get divergence, you'll need to compare rsi & price over periods

if(lowestPrice10_20 lowestRSI){

//on bars 10-20 lowest rsi is higher than on bars 0-10

//on bars 10-20 lowest price is lower than on bars 0-10

//i hope thats correct

}

Вам нужно начать изучать документацию на сайте mql4.com и на этом форуме, здесь собрано больше всего информации.

 

Как я могу написать этот советник?

Как я могу написать этот советник :

1 - Открыть 1 StopBuy 0.01 по цене + 20 и 1 StopSell 0.01 по цене -20, TP 20.

2 - Если один ордер исполняется, отменяем другой.

3 - Если исполненный ордер является ордером на покупку, обратная продажа 1 StopSell двойной (0.02) по цене входа -20 или наоборот, если ордер на продажу.

4 - и каждый раз, когда стоп-ордер исполняется, реверсируйте дабл на 20 пунктов дальше, пока не исполнится TP. Затем закройте все открытые ордера по этой паре.

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

 

Попробуйте это, я установил на него оповещение, это здорово.

Файлы:
ifish.mq4  3 kb
 

кто-нибудь может помочь мне с кодом

кто-нибудь может помочь мне, как закодировать индикатор с истекшим сроком действия, чтобы индикатор мог работать...и как закодировать индикатор, чтобы он мог работать только с 1 идентификатором счета.

thx

 
increase:
Попробуйте это, я поставил на него алерт, это здорово.

спасибо большое увеличение это работает как волшебство, возможно ли сделать советника, который размещает ордер в противоположном направлении, когда есть перерыв и цель только 5 пунктов?

 

звуковое оповещение для каждого индикатора

можно ли изменить звуковое оповещение для каждого индикатора, если да, то как?

 

EA не работает при прямом тестировании

Уважаемый Codersguru,

Не могли бы вы помочь рассмотреть мой советник ниже. Он прекрасно работает в бэктестинге, но не на реальном демо-счете. После кроссов нет никаких действий на покупку или продажу. Большое спасибо.

//+------------------------------------------------------------------+

//| 5/13-v2-SOS.mq4 |

//+------------------------------------------------------------------+

extern int Unique_Ref_Number=513;

extern int TakeProfit = 5;

extern int StopLoss = 5;

extern double Lots = 1;

extern int Max_Contracts = 1;

extern int emaShortPeriod=5;

extern int emaLongPeriod=13;

extern bool MoneyManagement=true;

extern int Risk=2;

int init() { return(0); }

int deinit() { return(0); }

int Crossed()

{

double emaLong_1=iMA(NULL,0,emaLongPeriod,0,1,PRICE_CLOSE,2);

double emaLong=iMA(NULL,0,emaLongPeriod,0,1,PRICE_CLOSE,1);

double emaShort_1=iMA(NULL,0,emaShortPeriod,0,1,PRICE_CLOSE,2);

double emaShort=iMA(NULL,0,emaShortPeriod,0,1,PRICE_CLOSE,1);

if (emaShort_1emaLong ) return (1); // восходящий тренд

if (emaShort_1>emaLong_1 && emaShort<emaLong ) return (2); //тренд вниз

return (0); //бездействие

}

int start()

{

double BuyStopLoss, SellStopLoss, Lotsize ;

int cnt, ticket;

static datetime ordertime;

int total=OrdersTotal();

if(MoneyManagement==true)

{Lotsize=NormalizeDouble((AccountFreeMargin()*Risk/10000),1);}

else

{ Lotsize=Lots; }

BuyStopLoss=MathMin(MathMin(MathMin(Low[1],Low[2]),Low[3]),Ask-StopLoss*Point);

SellStopLoss=MathMax(MathMax(MathMax(High[1],High[2]),High[3]),Bid+StopLoss*Point);

if(Time[0]>ordertime && total<Max_Contracts)

{

// проверяем возможность длинной позиции (BUY)

if(Crossed()==1 )

{

OrderSend(Symbol(),OP_BUY,Lotsize,Ask,1,BuyStopLoss,Ask+TakeProfit*Point, "5-13-Long",Unique_Ref_Number,0,Green);

ordertime=Time[0];

return(0);

}

// проверка возможности короткой позиции (SELL)

if(Crossed()==2 )

{

OrderSend(Symbol(),OP_SELL,Lotsize,Bid,1,SellStopLoss,Bid-TakeProfit*Point, "5-13-Short",Unique_Ref_Number,0,Red);

ordertime=Time[0];

return(0);

}

}

return(0);

}

 

Codersguru,

Мне нужна ваша помощь для советника MT4.

День начинается в 0000 GMT.

1) Нарисуйте 5 горизонтальных линий (разных цветов). Вчера OHLC и вчера (H+L)/2 медианная линия.

2) Подавать звуковые сигналы и всплывающие оповещения, когда цена касается любой из 5 линий.

Было бы здорово, если бы вы смогли помочь. Спасибо...

 
MiniMe:
индикатор предназначен для построения линии тренда

Я хочу иметь возможность изменять тонкость линии тренда.

Помогите, пожалуйста.

Алан

Вот оно. Надеюсь, это то, что вы хотели.

Файлы:
 
Maji:
Вот оно. Надеюсь, это то, что вы хотели.

Спасибо большое Маджи, именно то, что я искал.

Причина обращения: