Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите пожалуйста с куском кода ! заранее благодарен.
if (cci<cci1 && canal > zazor && 8<Hour() && 16>Hour() && (**сюда?**>=**сюда?**))
OrderSend(Symbol(), OP_SELL, 0.1,Bid, 3, Bid + SL*Point, Bid - TP*Point,"Pips", 0, 0, Red); }}
if (cci>cci1 && canal > zazor && 8<Hour() && 16>Hour() && (**сюда?**>=**сюда?**))
OrderSend(Symbol(), OP_BUY, 0.1,Ask, 3, Ask - SL*Point, Ask + TP*Point,"Pips", 0, 0, Blue); }
Эксперт должен открывать две сделки в день с 8ч до 16ч,что он и делает,но сделок 5-8шт
в день, а надо одну BUY и одну SELL, по каждой пере но как прописать в коде не знаю.
Да и еще если есть у кого нибудь любой советник с такими функциями можете дать,а дальше я сам вставлю все свое
Помогите пожалуйста с куском кода ! заранее благодарен.
Самый простой вариант, при открытие сделки выставляете флаг, примерно так:
bool OneBuy, OneSell;
int PrevDay=0;
int start()
{
if (iTime(NULL,PERIOD_D1,0) != PrevDay)
{
PrevDay=iTime(NULL,PERIOD_D1,0) ;
OneBuy=false; OneSell=false;
}
....
if (Условие открытия бай && !OneBuy)
{
Открываем бай
if (Сделка открылась удачно) OneBuy=true;
}
if (Условие открытия селл && !OneSell)
{
Открываем селл
if (Сделка открылась удачно) OneSell=true;
}
}
З.Ы. Блин похоже сайт не очень дружит с IE8...
Самый простой вариант, при открытие сделки выставляете флаг, примерно так:
bool OneBuy, OneSell;
int PrevDay=0;
int start()
{
if (iTime(NULL,PERIOD_D1,0) != PrevDay)
{
PrevDay=iTime(NULL,PERIOD_D1,0) ;
OneBuy=false; OneSell=false;
}
....
if (Условие открытия бай && !OneBuy)
{
Открываем бай
if (Сделка открылась удачно) OneBuy=true;
}
if (Условие открытия селл && !OneSell)
{
Открываем селл
if (Сделка открылась удачно) OneSell=true;
}
}
З.Ы. Блин похоже сайт не очень дружит с IE8...
Спасибо большое буду пробывать!!
спасибки за помощь=)
//+------------------------------------------------------------------+
//| проба из инета.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
while(iSAR(NULL,0,0.02,0.2,0)<Close[0]){
if(Orders(Magic,OP_BUY)>0){
if(buy<1){
//Открываем ордер buy
if(OrderSend(Symbol(),OP_BUY,...)<0){
Alert("Не удалось открыть ордер buy, ошибка:"+GetLastError());
}
else
Alert("открыт ордер buy");
}}}
while(iSAR(NULL,0,0.02,0.2,0)>Close[0]){
if(Orders(Magic,OP_SELL)>0){
if(sell<1){
//Открываем ордер sell
if(OrderSend(Symbol(),OP_SELL,...)<0){
Alert("Не удалось открыть ордер sell, ошибка: "+GetLastError());
}
else
Alert("открыт ордер sell");
}}}
}
//----
return(0);
}
//+------------------------------------------------------------------+
int Orders(int Magic, int cmd)
{
int Total=OrdersTotal();
for(int i=0; i<Total; i++){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()!=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()==cmd){
return(0);
}}}
return(1);
}
'Magic' - variable not defined C:\Program Files\MetaTrader - Alpari\experts\ïðîáà èç èíåòà.mq4 (18, 15)
'buy' - variable not defined C:\Program Files\MetaTrader - Alpari\experts\ïðîáà èç èíåòà.mq4 (19, 8)
'Magic' - variable not defined C:\Program Files\MetaTrader - Alpari\experts\ïðîáà èç èíåòà.mq4 (30, 15)
'sell' - variable not defined C:\Program Files\MetaTrader - Alpari\experts\ïðîáà èç èíåòà.mq4 (31, 8)
'}' - unbalanced parentheses C:\Program Files\MetaTrader - Alpari\experts\ïðîáà èç èíåòà.mq4 (42, 3)
попробывал сдеалть тот код который был набросан в качестве примера.появилисьтакие ошибки.
че не хватает в коде?
как правилбно обявить магик и бай и селл? чтоб все заработало?
if(OrderSelect(i,SELECT_BY_POS)) - что означает эта строчка?
вот сделал первую удачную копмиляцию!!!!!код следующий:
int start()
{
while(iSAR(NULL,0,0.05,0.2,0)<Close[0])
{
OrderSend(Symbol(),OP_BUY,0.1,NULL,10*Point,Bid-100*Point,Ask+500*Point,"КУПИЛ",1,0,Blue);
if (OrdersTotal()!=0)
Alert("Открыта позиция!!!");
}
return(0);
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!работает!!!!!!!!!!!!!!!!!!!!!!
можно как-нибудь добавть условие чтоб открытие было всего 1 раз а не каждыйй тик на 1 пункт. мне уже говорили как ранее но хочу посвоему попыттать код в таком формате.