Советники, эксперты, форекс роботы Обсуждение, поиск и тестирование форекс советников, роботов, экспертов и МТС

Ответить
28.12.2012, 13:26
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Сообщение от: maradona1981
могу предложить такой вариант вместо RSI взять МА 96 метод smoofeth применить к клоз тайм фрейм 1H, фунт\бакс
Оу. Здесь вход почти не важен. Судя по мониторингу такой как есть хорош.
28.12.2012, 13:36
Аватар для gek
gek gek на форуме Местный знаток
Регистрация: 26.08.2008 / Сообщений: 3,490
Поблагодарили 883 раз(а) / Репутация: 886
Зайди в советник и нажми компилировать.
Спасибо!Но чтобы компилировать,нужно его открыть.
Он у меня и там не открывается!Ничего не пойму.
eevviill ! Выложи пожалуйста уже компилированную последнюю версию.

Последний раз редактировалось gek; 28.12.2012 в 13:38.
28.12.2012, 13:48
Аватар для maradona1981
maradona1981 maradona1981 вне форума Новичок форума
Регистрация: 21.10.2009 / Адрес: Спб / Сообщений: 54
Поблагодарили 8 раз(а) / Репутация: 12
  • Отправить сообщение для maradona1981 с помощью ICQ
Оу. Здесь вход почти не важен. Судя по мониторингу такой как есть хорош.
можно добавить как дополнительный сигнал на вход
28.12.2012, 13:51
Аватар для maradona1981
maradona1981 maradona1981 вне форума Новичок форума
Регистрация: 21.10.2009 / Адрес: Спб / Сообщений: 54
Поблагодарили 8 раз(а) / Репутация: 12
  • Отправить сообщение для maradona1981 с помощью ICQ
какие настройки у RSI?
28.12.2012, 14:00
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Сообщение от: maradona1981
какие настройки у RSI?
Можно зайти в советник и глянуть. А ещё лучше пару дней с визуализацией посмотреть.
28.12.2012, 14:02
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Спасибо!Но чтобы компилировать,нужно его открыть.
Он у меня и там не открывается!Ничего не пойму.
eevviill ! Выложи пожалуйста уже компилированную последнюю версию.

Скрытый текст



#property copyright "eevviill"
#property link "itisallillusion@gmail.com"


extern string н_лс = "Настройки лота и стопов";
extern bool Использ_лот_от_дэпо = true;
extern double риск = 0.17;
extern double Лот = 0.1;
extern double лот_плюс_на_посл_ордер = 0;
extern double лот_коеф_на_посл_ордер = 1.5;
extern double сумарный_профит_вал_зак = 30;
extern bool использ_безубыток_эквити = false;
extern double коеф_безубыточности = 0.3; //активация от профита
extern bool использ_профит_от_эквити=false;
extern double эквити_для_расчёта = 20000; //каждое удвоение эквити умножает на 2 сумарный профит (20000=30 40000=60)

extern string пус1 = "";
extern string н_о = "Настройки ордера";
extern int шаг_между_ордерами = 30;
extern int проскальзывание = 2;
extern int меджик = 74335;
extern string коментарий = "Гойда";
extern int MaxAttempts = 14; //максимальное количество попыток открыть или закрыть ордер

extern string пус2 = "";
extern string н_rsi = "Настройки RSI";
extern int RSI_period = 14;
extern int RSI_верхний_уровень = 55; //для сел
extern int RSI_нижний_уровень = 45; //для бай








int кільк_бай,кільк_сел,сигнал_вхід;
static int попередній_час=0;
int лот_округлений=1;
double загальний_профіт_закр;
double point;


//////////////////////////////////////////////////////////////
int init()
{
попередній_час = Time[0];

if(MarketInfo(Symbol(),MODE_LOTSTEP)==0.01) лот_округлений=2;

point=Point;
if(Digits==3 || Digits==5) {point*=10;проскальзывание*=10;}

эквити_для_расчёта=AccountEquity();

return;
}




////////////////////////////////////////////////////////////
int start()
{
//розрахунок лота від % депозиту
if(Использ_лот_от_дэпо) Лот=Лот_від_депо_ф();

//закриття всіх ордерів по загальному профіту в пунктах
загальний_профіт_закр=(Лот*10)*сумарный_профит_вал_зак;
if(использ_профит_от_эквити) загальний_профіт_закр=сумарный_профит_вал_зак*(AccountBalance()/эквити_для_расчёта);
if(Профіт_валюти_ф()>=загальний_профіт_закр) закриття_ордеру_ф();

//можливість відкриття і відкриття додаткових ордерів
перевірка_відкр_дод_ордерів();

//беззбитковість (в еквіті)
if(использ_безубыток_эквити)
{
if(Профіт_валюти_ф()>=загальний_профіт_закр*коеф_безубыточности) беззбитковість_ф();
}

//робота по відкриттю бара
if (Time[0] == попередній_час) {Sleep(50);return(0);}
попередній_час = Time[0];

//сигнал на вхід
сигнал_вхід =сигнал_вхід_ф();

//вхід
if(сигнал_вхід!=0) відкриття_ордеру_ф();







return(0);
}






//расчёт функций
/////////////////////////////////////////////////////////////////////////////////////////////
int сигнал_вхід_ф()
{
//объявление индикаторов
double RSI1 = iRSI(Symbol(),0,RSI_period,PRICE_CLOSE,1);
double RSI1_поп = iRSI(Symbol(),0,RSI_period,PRICE_CLOSE,2);


//сигнал для бай
if(RSI1_поп>RSI_нижний_уровень && RSI1<RSI_нижний_уровень) return(1);


//сигнал для сел
if(RSI1_поп<RSI_верхний_уровень && RSI1>RSI_верхний_уровень) return(-1);



return(0);
}

///////////////////////////////////////////////////////////////////////////////////////////////
void відкриття_ордеру_ф()
{
//подсчёт открытых позиций
підрахунок_відкр_ордерів();


int тікет_відкриття_ордеру=-1;
for (int j_op = 0; j_op < MaxAttempts; j_op++)
{
while(IsTradeContextBusy()) Sleep(1000);

if(сигнал_вхід>0 && кільк_бай==0 && кільк_сел==0) тікет_відкриття_ордеру=OrderSend(Symbol(),OP_BUY,NormalizeDouble(Лот,лот_округлений),Ask,проскальзывание,0,0,коментарий,меджик,0,Green);
if(сигнал_вхід<0 && кільк_сел==0 && кільк_бай==0) тікет_відкриття_ордеру=OrderSend(Symbol(),OP_SELL,NormalizeDouble(Лот,лот_округлений),Bid,проскальзывание,0,0,коментарий,меджик,0,OrangeRed);
if(тікет_відкриття_ордеру>-1)break;
}

}

///////////////////////////////////////////////////////////////////////////////////
double Профіт_валюти_ф()
{
double профіт;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==меджик)
{
профіт+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}

return(профіт);
}

////////////////////////////////////////////////////////////////////////////////////
void підрахунок_відкр_ордерів()
{
кільк_бай=0;
кільк_сел=0;

for (int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
{
if(OrderMagicNumber()==меджик)
{
if(OrderType()==OP_BUY) кільк_бай++;
if(OrderType()==OP_SELL) кільк_сел++;
}
}
}

}

////////////////////////////////////////////////////////////////////////////////
void закриття_ордеру_ф()
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
{
if(OrderMagicNumber()==меджик)
{
if(OrderSymbol()==Symbol())
{
bool закрився_ордер=false;
for (int j_ex = 0;j_ex < MaxAttempts; j_ex++)
{
while(IsTradeContextBusy()) Sleep(1000);

if(OrderType()==OP_BUY ) закрився_ордер=OrderClose(OrderTicket(),OrderLots(),Bid,проскальзывание,Yellow);
if(OrderType()==OP_SELL) закрився_ордер=OrderClose(OrderTicket(),OrderLots(),Ask,проскальзывание,Yellow);
if(OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMIT) закрився_ордер=OrderDelete(OrderTicket(),CLR_NONE);
if(закрився_ордер==true)break;
}
}
}
}
}

}

////////////////////////////////////////////////////////////////////////
void перевірка_відкр_дод_ордерів()
{
підрахунок_відкр_ордерів();
if(кільк_бай!=0 || кільк_сел!=0)
{

/////////////////////////////////данні останнього ордеру
int тип_ост_ордера=-1;
double лот_ост_ордера=0;
double ціна_ост_ордера=0;
int тікет_відкриття_ордеру;


for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderMagicNumber()==меджик)
{
if(OrderSymbol()==Symbol())
{
тип_ост_ордера=OrderType();
лот_ост_ордера=NormalizeDouble(OrderLots(),лот_округлений);
ціна_ост_ордера=OrderOpenPrice();
break;
}
}
}
}

/////////////////////////////////данні передостаннього ордеру
double ціна_п_ост_ордера=0;
if(кільк_бай==0 || кільк_сел==0) ціна_п_ост_ордера=ціна_ост_ордера;

int вибір_ордера=0;

for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderMagicNumber()==меджик)
{
if(OrderSymbol()==Symbol())
{
вибір_ордера++;
if(вибір_ордера==2)
{
ціна_п_ост_ордера=OrderOpenPrice();
break;
}
}
}
}
}


//////////якщо останній ордер бай
if(тип_ост_ордера==OP_BUY)
{
if(Ask<=ціна_п_ост_ордера-шаг_между_ордерами*point)
{
тікет_відкриття_ордеру=-1;
for (int j = 0; j < MaxAttempts; j++)
{
while(IsTradeContextBusy()) Sleep(1000);

тікет_відкриття_ордеру=OrderSend(Symbol(),OP_SELL,NormalizeDouble(лот_ост_ордера*лот_коеф_на_посл_ордер+лот_плюс_на_посл_ордер,лот_округлений),Bid,проскальзывание,0,0,коментарий,меджик,0,OrangeRed);
if(тікет_відкриття_ордеру>-1)break;
}
}
}

//////////якщо останній ордер сел
if(тип_ост_ордера==OP_SELL)
{
if(Bid>=ціна_п_ост_ордера+шаг_между_ордерами*point)
{
тікет_відкриття_ордеру=-1;
for (j = 0; j < MaxAttempts; j++)
{
while(IsTradeContextBusy()) Sleep(1000);

тікет_відкриття_ордеру=OrderSend(Symbol(),OP_BUY,NormalizeDouble(лот_ост_ордера*лот_коеф_на_посл_ордер+лот_плюс_на_посл_ордер,лот_округлений),Ask,проскальзывание,0,0,коментарий,меджик,0,Blue);
if(тікет_відкриття_ордеру>-1)break;
}
}
}



}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double Лот_від_депо_ф()
{
double Вільна_маржа =AccountFreeMargin();
double Маржа_на_1_лот =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Мін_лот =MarketInfo(Symbol(),MODE_MINLOT);
double Макс_лот =MarketInfo(Symbol(),MODE_MAXLOT);
double Крок_лоту =MarketInfo(Symbol(),MODE_LOTSTEP);
double Лот_п =MathFloor(Вільна_маржа*риск/100/Маржа_на_1_лот/Крок_лоту)*Крок_лоту;
if(Лот_п<Мін_лот) Лот_п=Мін_лот;
if(Лот_п>Макс_лот) Лот_п=Макс_лот;
if(Лот_п*Маржа_на_1_лот>Вільна_маржа) return(0.0);

return(Лот_п);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double ціна_беззбитковості_ф()
{

int Spr= MarketInfo(Symbol(),MODE_SPREAD);
//------------ Безубыток ---------------------------------------------------
double B2_B=0,B2_S=0,B2_LB=0,B2_LS=0,BSw=0,BCo=0,SSw=0,SCo=0,Prof=0;
for(int b2=0;b2<OrdersTotal();b2++) //
{
if(OrderSelect(b2,SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber()==меджик)
{
if (OrderType()==OP_BUY)
{
B2_B=((B2_B*B2_LB)+(OrderOpenPrice()*OrderLots()))/(B2_LB+OrderLots());
B2_LB=NormalizeDouble(B2_LB+OrderLots(),2);
BSw=BSw+OrderSwap();
BCo=BCo+OrderCommission();
Prof=Prof+OrderProfit()+OrderSwap()+OrderCommission();
}
if (OrderType()==OP_SELL)
{
B2_S=((B2_S*B2_LS)+(OrderOpenPrice()*OrderLots()))/(B2_LS+OrderLots());
B2_LS=NormalizeDouble(B2_LS+OrderLots(),2);
SSw=SSw+OrderSwap();
SCo=SCo+OrderCommission();
Prof=Prof+OrderProfit()+OrderSwap()+OrderCommission();
}
}}

/////////////////////////////////////////////////////////////////////////////////////
double M2B=0,M2S=0 ,M5;
if (B2_LB>B2_LS) // Идём вверх
{
for(int J2=0;J2<10000;J2++)
{
M2B=J2*B2_LB*10;
M2S=((B2_B-B2_S+Spr*Point)/Point+J2)*(B2_LS*(-10));
if (M2B+M2S+BSw+SSw>=0)
{
M5=NormalizeDouble(B2_B+J2*Point,Digits);
break;
}}}
////////////////////////
if (B2_LS>B2_LB) // Идём вниз
{
for(int J3=0;J3<10000;J3++)
{
M2S=J3*B2_LS*10;
M2B=((B2_B-B2_S+Spr*Point)/Point+J3)*(B2_LB*(-10));
if (M2S+M2B+BSw+SSw>=0)
{
M5=NormalizeDouble(B2_S-(J3+Spr)*Point,Digits);
break;
}}}


// M5=рівень беззбитковості
return(M5);
}

//////////////////////////////////////////////////////////////////////////////////////
void беззбитковість_ф()
{
double ціна_беззбитковості=ціна_беззбитковості_ф();


for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==меджик)
{
while(IsTradeContextBusy()) Sleep(1000);

//////////////
if(OrderType()==OP_BUY)
{
if(NormalizeDouble(ціна_беззбитковості,Digits)>Bid && (NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(ціна_беззбитковості,Digits) && OrderStopLoss()!=NormalizeDouble(ціна_беззбитковості,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(ціна_беззбитковості,Digits),CLR_NONE);
///
if(NormalizeDouble(ціна_беззбитковості,Digits)<Bid && (NormalizeDouble(OrderStopLoss(),Digits)!=NormalizeDouble(ціна_беззбитковості,Digits) && OrderTakeProfit()!=NormalizeDouble(ціна_беззбитковості,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(ціна_беззбитковості,Digits),OrderTakeProfit(),CLR_NONE);
}

/////////////
if(OrderType()==OP_SELL)
{
if(NormalizeDouble(ціна_беззбитковості,Digits)>Ask && (NormalizeDouble(OrderStopLoss(),Digits)!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits) && OrderTakeProfit()!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits),OrderTakeProfit(),CLR_NONE);
///
if(NormalizeDouble(ціна_беззбитковості,Digits)<Ask && (NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits) && OrderStopLoss()!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits),CLR_NONE);
}

}
}
}

}

[свернуть]
28.12.2012, 14:10
Аватар для maradona1981
maradona1981 maradona1981 вне форума Новичок форума
Регистрация: 21.10.2009 / Адрес: Спб / Сообщений: 54
Поблагодарили 8 раз(а) / Репутация: 12
  • Отправить сообщение для maradona1981 с помощью ICQ
вот еще могу предложить такой банальный вариант, чтоб профит фактор поднять
если цена выше МА 96 на 1Н, то входы по RSI только в бай, если ниже только в селл
28.12.2012, 14:21
Аватар для gek
gek gek на форуме Местный знаток
Регистрация: 26.08.2008 / Сообщений: 3,490
Поблагодарили 883 раз(а) / Репутация: 886

Скрытый текст



#property copyright "eevviill"
#property link "itisallillusion@gmail.com"


extern string н_лс = "Настройки лота и стопов";
extern bool Использ_лот_от_дэпо = true;
extern double риск = 0.17;
extern double Лот = 0.1;
extern double лот_плюс_на_посл_ордер = 0;
extern double лот_коеф_на_посл_ордер = 1.5;
extern double сумарный_профит_вал_зак = 30;
extern bool использ_безубыток_эквити = false;
extern double коеф_безубыточности = 0.3; //активация от профита
extern bool использ_профит_от_эквити=false;
extern double эквити_для_расчёта = 20000; //каждое удвоение эквити умножает на 2 сумарный профит (20000=30 40000=60)

extern string пус1 = "";
extern string н_о = "Настройки ордера";
extern int шаг_между_ордерами = 30;
extern int проскальзывание = 2;
extern int меджик = 74335;
extern string коментарий = "Гойда";
extern int MaxAttempts = 14; //максимальное количество попыток открыть или закрыть ордер

extern string пус2 = "";
extern string н_rsi = "Настройки RSI";
extern int RSI_period = 14;
extern int RSI_верхний_уровень = 55; //для сел
extern int RSI_нижний_уровень = 45; //для бай








int кільк_бай,кільк_сел,сигнал_вхід;
static int попередній_час=0;
int лот_округлений=1;
double загальний_профіт_закр;
double point;


//////////////////////////////////////////////////////////////
int init()
{
попередній_час = Time[0];

if(MarketInfo(Symbol(),MODE_LOTSTEP)==0.01) лот_округлений=2;

point=Point;
if(Digits==3 || Digits==5) {point*=10;проскальзывание*=10;}

эквити_для_расчёта=AccountEquity();

return;
}




////////////////////////////////////////////////////////////
int start()
{
//розрахунок лота від % депозиту
if(Использ_лот_от_дэпо) Лот=Лот_від_депо_ф();

//закриття всіх ордерів по загальному профіту в пунктах
загальний_профіт_закр=(Лот*10)*сумарный_профит_вал_зак;
if(использ_профит_от_эквити) загальний_профіт_закр=сумарный_профит_вал_зак*(AccountBalance()/эквити_для_расчёта);
if(Профіт_валюти_ф()>=загальний_профіт_закр) закриття_ордеру_ф();

//можливість відкриття і відкриття додаткових ордерів
перевірка_відкр_дод_ордерів();

//беззбитковість (в еквіті)
if(использ_безубыток_эквити)
{
if(Профіт_валюти_ф()>=загальний_профіт_закр*коеф_безубыточности) беззбитковість_ф();
}

//робота по відкриттю бара
if (Time[0] == попередній_час) {Sleep(50);return(0);}
попередній_час = Time[0];

//сигнал на вхід
сигнал_вхід =сигнал_вхід_ф();

//вхід
if(сигнал_вхід!=0) відкриття_ордеру_ф();







return(0);
}






//расчёт функций
/////////////////////////////////////////////////////////////////////////////////////////////
int сигнал_вхід_ф()
{
//объявление индикаторов
double RSI1 = iRSI(Symbol(),0,RSI_period,PRICE_CLOSE,1);
double RSI1_поп = iRSI(Symbol(),0,RSI_period,PRICE_CLOSE,2);


//сигнал для бай
if(RSI1_поп>RSI_нижний_уровень && RSI1<RSI_нижний_уровень) return(1);


//сигнал для сел
if(RSI1_поп<RSI_верхний_уровень && RSI1>RSI_верхний_уровень) return(-1);



return(0);
}

///////////////////////////////////////////////////////////////////////////////////////////////
void відкриття_ордеру_ф()
{
//подсчёт открытых позиций
підрахунок_відкр_ордерів();


int тікет_відкриття_ордеру=-1;
for (int j_op = 0; j_op < MaxAttempts; j_op++)
{
while(IsTradeContextBusy()) Sleep(1000);

if(сигнал_вхід>0 && кільк_бай==0 && кільк_сел==0) тікет_відкриття_ордеру=OrderSend(Symbol(),OP_BUY,NormalizeDouble(Лот,лот_округлений),Ask,проскальзывание,0,0,коментарий,меджик,0,Green);
if(сигнал_вхід<0 && кільк_сел==0 && кільк_бай==0) тікет_відкриття_ордеру=OrderSend(Symbol(),OP_SELL,NormalizeDouble(Лот,лот_округлений),Bid,проскальзывание,0,0,коментарий,меджик,0,OrangeRed);
if(тікет_відкриття_ордеру>-1)break;
}

}

///////////////////////////////////////////////////////////////////////////////////
double Профіт_валюти_ф()
{
double профіт;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==меджик)
{
профіт+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}

return(профіт);
}

////////////////////////////////////////////////////////////////////////////////////
void підрахунок_відкр_ордерів()
{
кільк_бай=0;
кільк_сел=0;

for (int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
{
if(OrderMagicNumber()==меджик)
{
if(OrderType()==OP_BUY) кільк_бай++;
if(OrderType()==OP_SELL) кільк_сел++;
}
}
}

}

////////////////////////////////////////////////////////////////////////////////
void закриття_ордеру_ф()
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
{
if(OrderMagicNumber()==меджик)
{
if(OrderSymbol()==Symbol())
{
bool закрився_ордер=false;
for (int j_ex = 0;j_ex < MaxAttempts; j_ex++)
{
while(IsTradeContextBusy()) Sleep(1000);

if(OrderType()==OP_BUY ) закрився_ордер=OrderClose(OrderTicket(),OrderLots(),Bid,проскальзывание,Yellow);
if(OrderType()==OP_SELL) закрився_ордер=OrderClose(OrderTicket(),OrderLots(),Ask,проскальзывание,Yellow);
if(OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMIT) закрився_ордер=OrderDelete(OrderTicket(),CLR_NONE);
if(закрився_ордер==true)break;
}
}
}
}
}

}

////////////////////////////////////////////////////////////////////////
void перевірка_відкр_дод_ордерів()
{
підрахунок_відкр_ордерів();
if(кільк_бай!=0 || кільк_сел!=0)
{

/////////////////////////////////данні останнього ордеру
int тип_ост_ордера=-1;
double лот_ост_ордера=0;
double ціна_ост_ордера=0;
int тікет_відкриття_ордеру;


for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderMagicNumber()==меджик)
{
if(OrderSymbol()==Symbol())
{
тип_ост_ордера=OrderType();
лот_ост_ордера=NormalizeDouble(OrderLots(),лот_округлений);
ціна_ост_ордера=OrderOpenPrice();
break;
}
}
}
}

/////////////////////////////////данні передостаннього ордеру
double ціна_п_ост_ордера=0;
if(кільк_бай==0 || кільк_сел==0) ціна_п_ост_ордера=ціна_ост_ордера;

int вибір_ордера=0;

for(i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if(OrderMagicNumber()==меджик)
{
if(OrderSymbol()==Symbol())
{
вибір_ордера++;
if(вибір_ордера==2)
{
ціна_п_ост_ордера=OrderOpenPrice();
break;
}
}
}
}
}


//////////якщо останній ордер бай
if(тип_ост_ордера==OP_BUY)
{
if(Ask<=ціна_п_ост_ордера-шаг_между_ордерами*point)
{
тікет_відкриття_ордеру=-1;
for (int j = 0; j < MaxAttempts; j++)
{
while(IsTradeContextBusy()) Sleep(1000);

тікет_відкриття_ордеру=OrderSend(Symbol(),OP_SELL,NormalizeDouble(лот_ост_ордера*лот_коеф_на_посл_ордер+лот_плюс_на_посл_ордер,лот_округлений),Bid,проскальзывание,0,0,коментарий,меджик,0,OrangeRed);
if(тікет_відкриття_ордеру>-1)break;
}
}
}

//////////якщо останній ордер сел
if(тип_ост_ордера==OP_SELL)
{
if(Bid>=ціна_п_ост_ордера+шаг_между_ордерами*point)
{
тікет_відкриття_ордеру=-1;
for (j = 0; j < MaxAttempts; j++)
{
while(IsTradeContextBusy()) Sleep(1000);

тікет_відкриття_ордеру=OrderSend(Symbol(),OP_BUY,NormalizeDouble(лот_ост_ордера*лот_коеф_на_посл_ордер+лот_плюс_на_посл_ордер,лот_округлений),Ask,проскальзывание,0,0,коментарий,меджик,0,Blue);
if(тікет_відкриття_ордеру>-1)break;
}
}
}



}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double Лот_від_депо_ф()
{
double Вільна_маржа =AccountFreeMargin();
double Маржа_на_1_лот =MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Мін_лот =MarketInfo(Symbol(),MODE_MINLOT);
double Макс_лот =MarketInfo(Symbol(),MODE_MAXLOT);
double Крок_лоту =MarketInfo(Symbol(),MODE_LOTSTEP);
double Лот_п =MathFloor(Вільна_маржа*риск/100/Маржа_на_1_лот/Крок_лоту)*Крок_лоту;
if(Лот_п<Мін_лот) Лот_п=Мін_лот;
if(Лот_п>Макс_лот) Лот_п=Макс_лот;
if(Лот_п*Маржа_на_1_лот>Вільна_маржа) return(0.0);

return(Лот_п);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double ціна_беззбитковості_ф()
{

int Spr= MarketInfo(Symbol(),MODE_SPREAD);
//------------ Безубыток ---------------------------------------------------
double B2_B=0,B2_S=0,B2_LB=0,B2_LS=0,BSw=0,BCo=0,SSw=0,SCo=0,Prof=0;
for(int b2=0;b2<OrdersTotal();b2++) //
{
if(OrderSelect(b2,SELECT_BY_POS,MODE_TRADES)==false) continue;
if (OrderSymbol()==Symbol() && OrderMagicNumber()==меджик)
{
if (OrderType()==OP_BUY)
{
B2_B=((B2_B*B2_LB)+(OrderOpenPrice()*OrderLots()))/(B2_LB+OrderLots());
B2_LB=NormalizeDouble(B2_LB+OrderLots(),2);
BSw=BSw+OrderSwap();
BCo=BCo+OrderCommission();
Prof=Prof+OrderProfit()+OrderSwap()+OrderCommission();
}
if (OrderType()==OP_SELL)
{
B2_S=((B2_S*B2_LS)+(OrderOpenPrice()*OrderLots()))/(B2_LS+OrderLots());
B2_LS=NormalizeDouble(B2_LS+OrderLots(),2);
SSw=SSw+OrderSwap();
SCo=SCo+OrderCommission();
Prof=Prof+OrderProfit()+OrderSwap()+OrderCommission();
}
}}

/////////////////////////////////////////////////////////////////////////////////////
double M2B=0,M2S=0 ,M5;
if (B2_LB>B2_LS) // Идём вверх
{
for(int J2=0;J2<10000;J2++)
{
M2B=J2*B2_LB*10;
M2S=((B2_B-B2_S+Spr*Point)/Point+J2)*(B2_LS*(-10));
if (M2B+M2S+BSw+SSw>=0)
{
M5=NormalizeDouble(B2_B+J2*Point,Digits);
break;
}}}
////////////////////////
if (B2_LS>B2_LB) // Идём вниз
{
for(int J3=0;J3<10000;J3++)
{
M2S=J3*B2_LS*10;
M2B=((B2_B-B2_S+Spr*Point)/Point+J3)*(B2_LB*(-10));
if (M2S+M2B+BSw+SSw>=0)
{
M5=NormalizeDouble(B2_S-(J3+Spr)*Point,Digits);
break;
}}}


// M5=рівень беззбитковості
return(M5);
}

//////////////////////////////////////////////////////////////////////////////////////
void беззбитковість_ф()
{
double ціна_беззбитковості=ціна_беззбитковості_ф();


for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==меджик)
{
while(IsTradeContextBusy()) Sleep(1000);

//////////////
if(OrderType()==OP_BUY)
{
if(NormalizeDouble(ціна_беззбитковості,Digits)>Bid && (NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(ціна_беззбитковості,Digits) && OrderStopLoss()!=NormalizeDouble(ціна_беззбитковості,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(ціна_беззбитковості,Digits),CLR_NONE);
///
if(NormalizeDouble(ціна_беззбитковості,Digits)<Bid && (NormalizeDouble(OrderStopLoss(),Digits)!=NormalizeDouble(ціна_беззбитковості,Digits) && OrderTakeProfit()!=NormalizeDouble(ціна_беззбитковості,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(ціна_беззбитковості,Digits),OrderTakeProfit(),CLR_NONE);
}

/////////////
if(OrderType()==OP_SELL)
{
if(NormalizeDouble(ціна_беззбитковості,Digits)>Ask && (NormalizeDouble(OrderStopLoss(),Digits)!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits) && OrderTakeProfit()!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits),OrderTakeProfit(),CLR_NONE);
///
if(NormalizeDouble(ціна_беззбитковості,Digits)<Ask && (NormalizeDouble(OrderTakeProfit(),Digits)!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits) && OrderStopLoss()!=NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits)))
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),NormalizeDouble(ціна_беззбитковості+MarketInfo(Symbol(),MODE_SPREAD)*point,Digits),CLR_NONE);
}

}
}
}

}

[свернуть]
Копирую в MQL, не идёт,появляются одни вопросы.Зависит от языка?Не должно.
Ничего не пойму.Скачал последнюю версию с All Close.Этот открывает,а Visual нет.Что делать?

Ни одна версия с самого начала не открывается!
Мужики в чём дело?Кто знает?

Последний раз редактировалось gek; 28.12.2012 в 14:24.
28.12.2012, 15:39
Аватар для gek
gek gek на форуме Местный знаток
Регистрация: 26.08.2008 / Сообщений: 3,490
Поблагодарили 883 раз(а) / Репутация: 886
Никто не знает в чём причина?
28.12.2012, 15:55
Аватар для gek
gek gek на форуме Местный знаток
Регистрация: 26.08.2008 / Сообщений: 3,490
Поблагодарили 883 раз(а) / Репутация: 886
Уже и на RVD поставил.Мёртво.
28.12.2012, 17:56
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Уже и на RVD поставил.Мёртво.
Точно не уверен. Но по моему это что то с новым билдом МТ4. У меня сегодня тоже не первая такая ситуация.
28.12.2012, 18:30
Аватар для gek
gek gek на форуме Местный знаток
Регистрация: 26.08.2008 / Сообщений: 3,490
Поблагодарили 883 раз(а) / Репутация: 886
И как теперь?Можно исправить?Так хотелось попробовать.
28.12.2012, 21:03
Аватар для НЛО
НЛО НЛО вне форума Местный знаток
Регистрация: 23.12.2011 / Сообщений: 654
Поблагодарили 510 раз(а) / Репутация: 512
eevviill, хочется проверить в тестере такую ерунду, если сможешь напиши такой сов.
1.открытие на новом баре, если предыдущий бар закрылся хай- открывает на новом(следующем) баре покупку, если предыдущий бар закрылся лоу- открывает на новом(следующем) баре продажу.
2.Каждому ордеру выставляет свой ТП(настройка)
3.Безубыток(настройка)стави т бузубыток каждому ордеру отдельно, т.е. сов следит за каждым ордером отдельно.
4.Одинаковые ордера должны быть не ближе кол-ва пунктов указаных в настройке, т.е. если в настройке стоит 200 пунктов(5 знаков), то между ордерми бай должно быть минимум 200пп, если этого расстояния нет то открытие на новом баре пропускается, и также для селл ордеров.
5.Лот(настройка)

П.С. Вроде понятно оПисал.

Вот и все, ордера будут всегда локироватся противоположными, но их будет уева туча, пока не проверить в тестере считаю что мин.лотами можно грести все подряд движения.
28.12.2012, 21:33
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
И как теперь?Можно исправить?Так хотелось попробовать.
Ну я сам код дал. Если не компилируется то я не знаю что делать.
28.12.2012, 21:34
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
...если предыдущий бар закрылся хай...
Всмысле цена закрытия совпадает с хай свечи?
28.12.2012, 21:51
Аватар для НЛО
НЛО НЛО вне форума Местный знаток
Регистрация: 23.12.2011 / Сообщений: 654
Поблагодарили 510 раз(а) / Репутация: 512
Всмысле цена закрытия совпадает с хай свечи?
если цена закрытия свечи хай( свечи тела), синяя свеча- покупка на след.баре., красная ноборот

Или так: незнаю как объяснить, короче после синей свечи покупает, после красной продает, см. рис.
28.12.2012, 21:57
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
если цена закрытия свечи хай( свечи тела), синяя свеча- покупка на след.баре., красная ноборот

Или так: незнаю как объяснить, короче после синей свечи покупает, после красной продает, см. рис.
Аа. Ничего не будет. Сразу будет прибыль с первых ордеров, а потом те ордера бай и сел что станут далеко друг от друга будут в вечном локе.
28.12.2012, 22:11
Аватар для НЛО
НЛО НЛО вне форума Местный знаток
Регистрация: 23.12.2011 / Сообщений: 654
Поблагодарили 510 раз(а) / Репутация: 512
Аа. Ничего не будет. Сразу будет прибыль с первых ордеров, а потом те ордера бай и сел что станут далеко друг от друга будут в вечном локе.
Дык и пусь болтаются, лот то минимальный, а прибыль будет капать постоянная, и когда нибудь первоначальный депо поползет вверх.
Нужно брать пару с относительно неболшим ходом на истории и все будет ОК, а теперь представь, что через каждые 200пп(5знаков) будет щелкать ТП, допустим 1000пп.
28.12.2012, 22:13
Аватар для grisly
grisly grisly вне форума Местный житель
За призовое место в конкурсе За призовое место в конкурсе За призовое место в конкурсе 

Регистрация: 14.10.2012 / Сообщений: 274
Поблагодарили 170 раз(а) / Репутация: 171
У меня все работает. Я в начале неделе обновлял мт4. Даже щас сделка открывая недавно висит
28.12.2012, 22:24
Аватар для gek
gek gek на форуме Местный знаток
Регистрация: 26.08.2008 / Сообщений: 3,490
Поблагодарили 883 раз(а) / Репутация: 886
У меня бид 451 у RVD.У вас?Kaкой ДЦ?
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 08:10. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO