[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 410

 
Morzh09 >>:

Коллеги, почему может возникать такая проблема:


условие на открытие позиции выполняется, а позиция, при этом, не открывается...


if ( ((MathRound(iCustom(NULL, 0,"ind1",2,0))==1)&&(ind2()==1) )
{
if ( buy_order_open==0 )
{
Alert("Время покупать ", Symbol());
//long
ticket = OrderSend(Symbol(), OP_BUY, lots,NormalizeDouble(Ask, Digits), 3,NormalizeDouble(Bid - sl * Point, Digits), 0, "Buy", MagicNumber, 0, Blue); //Ask
//----
if(ticket < 0)
{
Sleep(30000);
prevtime = Time[1];
}

buy_order_open = 1;
}

}

Alert с сообщением срабатывает, а ордера не отправляются... :((

Ciò che è NormalizeDouble(Ask, Digits), non è abbastanza ASK. E se avete deciso di normalizzarlo, cosa sono le cifre?

 
zhuki >>:

Что такое NormalizeDouble(Ask, Digits),разве не достаточно ASK. И если вы его решили нормализовать,то что за Digits ? чему равен или как получен?.

NormalizeDouble

Arrotonda un numero in virgola mobile alla precisione specificata.

Cifre

Numero di cifre dopo il punto decimale nel prezzo dello strumento corrente.

A volte gli errori nelle funzioni di trading a causa della quinta cifra 1.45562

 
zhuki писал(а) >>

Ciò che è NormalizeDouble(Ask, Digits), non è abbastanza ASK. E se avete deciso di normalizzarlo, cosa sono le cifre?

Le cifre vanno bene.

Il problema sta molto probabilmente nello slittamento. Sulle cinque cifre 3 punti non sono sufficienti.

 
Vinin >>:

С Digits все нормально.

Проблема скорее всего сидит в слиппаже. На пятизнаке 3 пунктов мало

E di che tipo di errori nelle funzioni commerciali stiamo parlando?

Rimuovete NormalizeDouble e penso che tutto funzionerà.

 
zhuki >>:

Но, как ни ставь слиппаж в тестере всё равно работать будет.А у него в тестере не работает.И о каких ошибках в торговых функциях идёт речь?

Уберите NormalizeDouble и я думаю всё заработает.

slippage=25 non ho problemi!

Si tratta di

ERRARE_INVALIDO_STOP 130 Fermate errate
ERRARE_INVALIDO_PREZZO 129 Prezzo errato
ERRO_INVALIDO_PREZZO_PARAM 4107 Parametro di prezzo errato per la funzione commerciale
 
costy_ >>:

Речь идет о

ERR_INVALID_STOPS130Неправильные стопы
ERR_INVALID_PRICE129Неправильная цена
ERR_INVALID_PRICE_PARAM4107Неправильный параметр цены для торговой функции

130 stai solo cercando di mettere SL nella direzione sbagliata o troppo vicino.

129 potrebbe essere che se mettete il prezzo in un modo, usate le cifre (sbagliato)

4107 mai incontrato non si può dire.

Avete un errore o no?

 
zhuki >>:

130 вы просто не в ту сторону пытаетесь поставить SL или слишком близко.

129 может быть если вы ставите цену один из вариантов использование Digits(неправильного)

4107 никогда не встречался сказать не могу.

А,вас ошибка есть или нет?.

Ho avuto problemi, l'ho cambiato molto tempo fa e va bene, 130 non a causa di arresti sbagliati (non li ho!) Dipende dal rivenditore.

L'EA è sempre sul mercato! Ti suggerisco di usare anche la funzione OrderCloseBy invece degli stop, si è dimostrata (non intraday).

Ask = 1.54889e Lots = 0.1 =))

ERRARE_INVALIDO_SCAMBIO_VOLUME 131 Volume errato
 
Vinin писал(а) >>
Period() restituisce l'intervallo di tempo corrente in minuti

Tutto risolto, grazie!

 
kon12 >>:

Все, разобрался, спасибо!

Utilizzare il trigger di testo

string PeriodToStr(int Per)
   {
      switch( Per)                 // Расчёт коэффициентов для..     
      {                              // .. различных ТФ      
      case     1: return("M1");  // Таймфрейм М1      
      case     5: return("M5");  // Таймфрейм М5      
      case    15: return("M15");  // Таймфрейм М15      
      case    30: return("M30");  // Таймфрейм М30      
      case    60: return("H1");  // Таймфрейм H1      
      case   240: return("H4");  // Таймфрейм H4      
      case  1440: return("D1");  // Таймфрейм D1      
      case 10080: return("W1");  // Таймфрейм W1      
      case 43200: return("МN");  // Таймфрейм МN     
      }
   }
 
costy_ >>:

Были проблемы, уже давно поменял и все ОК, 130 не из-за неправильных стопов( у меня их нет!) Зависит от диллера.

Советник всегда в рынке! Предлагаю и Вам использовать функцию OrderCloseBy вместо стопов, отлично зарекомендовала себя(не интрадей).

Ask=1.54889 мой терминал такого не кушает как и Lots = 0.1 =))

ERR_INVALID_TRADE_VOLUME 131 Неправильный объем

E se...

double LotNorm(double lots, string sim="")
{
int dig=0; double hh;
if( sim=="") sim=Symbol();
//
if( lots<MarketInfo( sim, MODE_MINLOT)) {Print( sim+"=МИНИЛОТ=Недостаточно денег"); return(-1);}
if( lots>MarketInfo( sim, MODE_MAXLOT)) lots=MarketInfo( sim, MODE_MAXLOT);
//
if(MarketInfo( sim,MODE_MINLOT)==0.1) dig=1;
if(MarketInfo( sim,MODE_MINLOT)==0.01) dig=2;
if(MarketInfo( sim,MODE_MINLOT)==0.001) dig=3;
if(MarketInfo( sim,MODE_MINLOT)==0.0001) dig=4;
//
lots=NormalizeDouble( lots, dig);
//
return( lots);
}
Motivazione: