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

 
Devil2000:
Что такое "часы"? Насколько я знаю, в MQL4 нет функции "часы".

Вы можете попробовать это.

if(TimeHour(TimeCurrent())==7)

{

if(TimeMinute(TimeCurrent())==15) B== 1;

if(TimeMinute(TimeCurrent())==30) B== 2;

if(TimeMinute(TimeCurrent())==45) B== 3;

}

if(TimeHour(TimeCurrent())==8)

{

if(TimeMinute(TimeCurrent())==0) B== 4;

if(TimeMinute(TimeCurrent())==15) B== 5;

if(TimeMinute(TimeCurrent())==30) B== 6;

}

Конечно, я думал, что у него

datetime clocks = TimeCurrent();

в более ранней строке.

Роберт

 
MrPip:
Конечно, я думал, что у него

datetime clocks = TimeCurrent();

в предыдущей строке.

Роберт

Правда? Я не могу найти это на предыдущей странице.

Это должно работать. Но в течение часа иногда будет не хватать нескольких минут из-за вашего интернет-соединения или задержки сервера.

 

Ищу программиста для преобразования индикатора в советника

Привет всем,

Я ищу программиста для преобразования индикатора в советник (или отдельный советник, который работает с существующим индикатором). Он просто должен либо покупать, либо продавать там, где генерируется сигнал, и иметь следующие возможности в предустановках:

*Размер лота

*Установка стоп-лосса

*Установка скользящего стопа

*Управление капиталом *Размер лота на основе баланса счета.

Прилагаю фотографию индикатора.

Пожалуйста, напишите мне, если вы заинтересованы в проекте, или знаете кого-то, кто заинтересован.

Заранее спасибо.

Файлы:
indicator.gif  23 kb
 
Devil2000:
Правда? Я не могу найти это на предыдущей странице. Это должно работать. Но в течение часа иногда будет не хватать нескольких минут из-за вашего интернет-соединения или задержки сервера.

Извините за путаницу, вот код для часов, чтобы я мог менять их с разным GMT

double Clocks = TimeCurrent() - (Broker)*3600;

Broker - время брокера в GMT...

Еще один проблемный код, который мне нужен, ребята... извините, если я прошу слишком много...

моя проблема :

Я хочу, чтобы он открывал только максимум 1 плавающую продажу и 1 плавающую покупку в день... но мог открывать более чем много покупок или продаж в день... если советник работает три дня и каждый день выполняются условия ордеров, то он будет иметь 3 плавающие покупки/продажи или 6 плавающих покупок и продаж...

пример:

День 1 = открываем 1 покупку, попадаем в Tp и открываем еще одну покупку = 1 покупка все еще открыта.

День 2 = предыдущая покупка все еще открыта и открываем еще одну покупку = 2 покупки все еще открыты

День 3 = 2 покупки еще открыты и открыта еще одна покупка = 3 покупки еще открыты

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;

if(OrderSymbol()== Symbol () && OrderMagicNumber()== Magic_Number)

{

if(OrderType() == OP_BUY) buys++;

if(OrderType() == OP_SELL) sells++;

}

}

если (buys < 1) он заказывает покупку

если (sells < 1) он заказывает продажу при выполнении условий

 

Вы можете использовать это для подсчета только тех, которые открыты сегодня:

if(OrderType() == OP_BUY && OrderOpenTime() >= iTime(NULL, PERIOD_D1, 0)) buys++;
 

нужна быстрая помощь

У меня есть эти коды ниже.....

кто-нибудь может проверить, следуют ли они этому правилу...

Если на графике нет сделок, то по сигналу открывается 1 лот.

если 1 сделка уже на графике, то все остальные ордера открываются двойным лотом...

пожалуйста, проверьте,

total = OrdersTotal();

if(total>=2)

{

if(MA11>MA21 && MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,2*Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green);

return (0);

}

if(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,2*Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red);

return (0);

}

}

if(MA11>MA21 && MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green);

}

if(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red);

}

}

 

Мартингейл?

У вас нет надежды.....

 
kjhfdgjfhdghdf:
Мартингейл? У вас нет надежды.....

Я буду иметь это в виду, спасибо.

 

Я просто изменил и добавил... красные символы. Надеюсь, это поможет...

total = OrdersTotal();

if(total>=1)

{

if(MA11>MA21 && MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,2*Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green);

return (0);

}

if(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,2*Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red);

return (0);

}

}

if(total<1)

{

if(MA11>MA21 && MA12<MA22)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-stoploss*Point,0,0,Magic_number,0,Green);

}

if(MA11MA22)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Bid+stoploss*Point,0,0,Magic_number,0,Red);

}

}
 

СтопЛосс при пересечении МА

В советнике у меня есть SL=50.

Как закодировать, если я хочу SL=50 ИЛИ пересечение 2 ма?

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