Думаю так надо.Подскажите почему K_Lot высвечивается в Alert с 4-мя знаками?
NormalizeDouble(K_Lot,2);
Alert (K_Lot);
Что не так?
double Nor_K_Lot = NormalizeDouble(K_Lot,2);
Alert (Nor_K_Lot);
Думаю так надо.
PHP:double Nor_K_Lot = NormalizeDouble(K_Lot,2); Alert (Nor_K_Lot);
void SetOrders() {
if( Close[0]==Open[0] && High[0]==Low[0] && Volume[0]<0)
double Price,ldStop=0, ldTake=0;
double pBid=Open[0]-DistanceSet*Point;
if (!ExistOrder(2)){
if (StopLoss!=0) ldStop=pBid+StopLoss*Point;
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake, 2);
}
как правильно прописать сигнал чтоб при каждом тике только раз выдало если такой же уже сообщался?...
- а то пиликает постоянно
int lastTime = 0;
int start() {
if (lastTime == 0) lastTime = Time[0];
if (Time[0] != lastTime && Условие сигнала == true) {
Alarm();
lastTime = Time[0];
}
}
//-------------------------------------------------
if
MA EURUSD 100>1
{ Alert("Sell EURUSD!"); }
//-------------------------------------------------
if
MA GBPUSD 100>1
{ Alert("Sell GBPSD!"); }
//-------------------------------------------------
Что бы пиликнуло один раз при получении условия и в следующий раз пиликнуло только после изменения состояния условия можно организовать триггер при помощи статическихи и локальных флагов.ну например:
оно щас у меня пиликает то одно постоянно, или все сразу - если совпали параметры... и получается в хате дискотекаPHP://------------------------------------------------- if MA EURUSD 100>1 { Alert("Sell EURUSD!"); } //------------------------------------------------- if MA GBPUSD 100>1 { Alert("Sell GBPSD!"); } //-------------------------------------------------
Сравни время открытия текущего бара и время открытия ордера. Если время открытия ордера больше или равно времени открытия текущего бара, то запрети закрытие ордера.подскажит пожайлуста а как сделать чтоб ордера не закрывались на етой же свече на которой открылись
if(OrdersTotal()==0)Подскажите как написать "Если есть открытый ордер, то..." и "Если нет открытого ордера , то ..."
Упс, малость перепутал. Всё наоборот.Спасибо!
А точно так, что-то тестер игнорирует...Сообщение от hiks
Подскажите как в коде написать:
Если последний ордер закрылся по стоплоссу то ....
Если последний ордер закрылся по тейкпрофиту то ....
Что то типа
PHP код:
OrderSelect(1,SELECT_BY_POS,MODE_HISTORY);
if(OrderTakeProfit()==OrderClosePrice()) ....
А точно так, что-то тестер игнорирует...
void MooFoo()
{
static int last_ticket = EMPTY;
datetime time = 0;
int ticket = EMPTY;
for( int i = OrdersHistoryTotal()-1 ; i >= 0 ; i--)
if( OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) )
if( OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC )
if( OrderOpenTime() > time )
{
time = OrderOpenTime();
ticket = OrderTicket();
}
if( ticket != EMPTY && last_ticket != ticket )
if( OrderSelect(ticket, SELECT_BY_TICKET ) )
{
if( [COLOR="Red"]NormalizeDouble[/COLOR](OrderClosePrice(), Digits) == [COLOR="Red"]NormalizeDouble[/COLOR](OrderStopLoss(), Digits) ) // в некоотрых слочаях можна использовать if( OrderProfit() < 0.0 ) как аналог
{
// закрылись по стоп лосу (или в убыток если использовали if( OrderProfit() < 0.0 ) )
}
if( [COLOR="Red"]NormalizeDouble[/COLOR](OrderClosePrice(), Digits) == [COLOR="Red"]NormalizeDouble[/COLOR](OrderTakeProfit(), Digits) ) // if( OrderProfit() > 0.0 )
{
// закрылись по тейку (или в профит если использовали if( OrderProfit() > 0.0 ) )
}
}
last_ticket = ticket;
}