[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 407
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
BASE FLETCHING... :-)
e anche un TREND BASE ))
se l'eur scende e il dol scende, piatto
:-)
gli spread di swap sono stati presi in considerazione?
Sul fatto che dopo il for...
Sì.... Risposta "esaustiva". Ogni evento deve avere una ragione. I professionisti che incontrano alcuni malfunzionamenti sanno a cosa prestare attenzione. Guardato attraverso l'algoritmo diverse volte, ma non riesco a trovare la causa Ecco perché mi rivolgo ai professionisti per un consiglio - quale potrebbe essere la ragione?
Sto cercando di aprire un ordine pendente come questo:
//+---------Функция расчета лота---------------------------------------+
doppio GetLot(int Risk)
{
double Free=AccountFreeMargin();
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
double Step=MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot=MathFloor(Free*Risk/100/One_Lot/Step)*Step;
if(Lot<Min_Lot)Lot=Min_Lot;
if(Lot>Max_Lot)Lot=Max_Lot;
if(Lot*One_Lot>Free)return(0.0);
ritorno(Lotto);
}
//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot)
{
doppio TP=0;//takeprofit
double SL=0;// stop loss
double PR=0;// prezzo
while(!IsTradeAllowed())Sleep(100);
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(StopLoss<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
se(Cmd==OP_BUYSTOP)
{
PR=NormalizeDouble(Ask,Digits);
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if(StopLoss>0)SL=NormalizeDouble(Bid-StopLoss*Point,Digits);
}
se(Cmd==OP_SELLSTOP)
{
PR=NormalizeDouble(Bid,Digits);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if(StopLoss>0)SL=NormalizeDouble(Ask+StopLoss*Point,Digits);
}
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE);
if(tic<0)Print("Error opening order:",GetLastError()); Print("Cmd-",Cmd, "Lot=",Lot, "PR=",PR, "SL=",SL, "TP=",TP);
ritorno(tic);
}
Quando lo controllo, ricevo un messaggio:
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: importo lotti non valido per la funzione OrderSend
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend error 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Ordine errato aperto:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
Ovviamente, è qualcosa con il calcolo dei lotti, ma non capisco cosa))) Si prega di consigliare
Yep.... Risposta "esaustiva". Ogni evento deve avere una ragione. I professionisti, quando incontrano qualche malfunzionamento, sanno cosa cercare. Ho controllato l'algoritmo diverse volte, ma non riesco a trovare la ragione. Ecco perché chiedo consiglio ai professionisti - quale può essere la ragione?
Beh, dov'è l'indicatore?! (Immagino dai fondi di caffè tel. https://www.mql5.comhttps://www.mql5.com/ru/)
Beh, se si elenca tutto, le lettere si esauriranno.
continua break return vedere se e quando c'è un interrupt per e quando succede. funziona con l'apertura della barra....
"incontrando alcuni problemi sanno a cosa prestare attenzione" non prestano attenzione ma iniziano a fare il debugging, iniziate a fare il debugging anche del vostro indicatore, per esempio tramite stampa (per di più con quello di qualcun altro e quindi lungo 15 pagine, più di 50 funzioni chiamate...)
Salve.
Ho creato un array:
Tuttavia, per qualche motivo il suo primo valore va a zero (-10.09 diventa 0). Ho trovato una via d'uscita dalla situazione facendo questo:
Potete dirmi per favore di cosa si tratta? Molto voglio capire.
Grazie in anticipo.
Salve.
Ho creato un array:
Tuttavia, per qualche motivo il suo primo valore va a zero (-10.09 diventa 0). Ho trovato una via d'uscita dalla situazione facendo questo:
Puoi dirmi per favore di cosa si tratta? Molto voglio capire.
Grazie in anticipo.
Non ho azzerato con indice = 0
2011.12.06 20:00:47 MA_TF AUDUSD,M30: Allarme: -10.09
Ecco la parte problematica del codice:
Ecco il problema descritto sopra: la linea derivata dal valore -10.09 non viene disegnata (prende il valore di MinAsia).
Ecco la parte problematica del codice:
tuz
Sto cercando di aprire un ordine pendente come questo:
//+---------Функция расчета лота---------------------------------------+
Quando lo controllo, ricevo un messaggio:
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: importo lotti non valido per la funzione OrderSend
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend error 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Ordine errato aperto:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
Ovviamente, è qualcosa con il calcolo dei lotti, ma non capisco cosa))) Si prega di consigliare