Перейти к содержанию

[open source] [Советник] по ТС [Н1] Master Candle Method


Рекомендуемые сообщения

[open source] [Советник] по ТС [Н1] Master Candle Metho… Опубликовано (изменено)

Заинтересовала ТС Master Candle Method, более подробно можно посмотреть в блоге, решил сделать робота. Соответственно кому интересно, предлагаю вместе заняться усовершенствованием этой совы. Валютные пары GBP/USD GBP/JPY. Тайм фрейм H4.



MQL-Код:
//+------------------------------------------------------------------+
//| Aktn.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//|
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link

//--- input parameters
extern int lot=1;
extern int StopLoss=200;
extern string _____= "Параметры функции ТРЕЙЛИНГ СТОП";
extern bool UseTrailing = true;//Выключатель трейлинг стопа
extern int MinProfit = 150; //порог включения трейлин стопа
extern int TrailingStop = 75;// величина трейлинг стопа
extern int TrailingStep = 5; // шаг трейлинг стопа
extern int Magic = 1;
double Top;
double Dno;
int TikBuy;
int TikSell,BarSig;
double Cena;
datetime NewTime;
double Balance;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{

TikBuy=0;
TikSell=0;
BarSig=0;

//----
return(1);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}

void TrailPositions() // функция трейлинг стоп
{
int Orders = OrdersTotal();
for (int i=0; i if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() == Magic ){
if (OrderType() == OP_BUY ) {
if (Bid-OrderOpenPrice() > MinProfit*Point) {
if (OrderStopLoss() OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point,
OrderTakeProfit(), 0, Blue);
} } }
if (OrderType() == OP_SELL) {
if (OrderOpenPrice()-Ask >MinProfit*Point) {
if (OrderStopLoss() > Ask+(TrailingStop+TrailingStep-1)*Point
|| OrderStopLoss() == 0) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point,
OrderTakeProfit(), 0, Blue);
} } } } } }
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if (UseTrailing) TrailPositions();
if ((OrdersTotal()==0)&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,4))&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,3))&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,2))&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,1))&&
(iLow(Symbol(),0,5) {
if (iHigh(Symbol(),0,5) TikBuy=OrderSend(Symbol(),OP_BUYSTOP,lot,Cena,0,Cena-StopLoss*Point,0,NULL,Magic,0,CLR_NONE);
if (iLow(Symbol(),0,5)>Bid-30*Point){Cena=Bid-30*Point;} else {Cena=iLow(Symbol(),0,5);}
TikSell=OrderSend(Symbol(),OP_SELLSTOP,lot,Cena,0,Cena+StopLoss*Point,0,NULL,Magic,0,CLR_NONE);
BarSig=4;
}
if (OrdersTotal()>1)
{
OrderSelect(TikBuy,SELECT_BY_TICKET);
if (OrderProfit()!=0){OrderDelete(TikSell);TikSell=0;}
OrderSelect(TikSell,SELECT_BY_TICKET);
if (OrderProfit()!=0){OrderDelete(TikBuy); TikBuy=0;}
}

if ((BarSig==8)&&(OrdersTotal()==2))
{
OrderDelete(TikSell); TikSell=0;
OrderDelete(TikBuy); TikBuy=0;
}

if (NewTime!=iTime(Symbol(),0,0))
{
BarSig++;
NewTime=iTime(Symbol(),0,0);

}
//----

//----
return(1);
}

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

Изменено пользователем Pavel888
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...