No, se mettete prima int slippage alloca 4 byte, quindi dovete aggiungere fino a 8 (int reserve) o usare long invece di int
C'è un altro momento strano qui. Se è un elemento di una struttura di stringhe, allora se il numero di caratteri variabili di questo tipo di stringa è più di 7, lo metteremo sopra gli altri? Perché le stringhe hanno sempre un carattere nullo\n alla fine della stringa, e se ci sono più di 7 elementi nella stringa, per esempio, 8 elementi, allora la stringa avrà 8 + 1 byte, perché 8 + \n. Giusto?
artmedia70: Ho già notato il tuo post e ho cancellato il mio - l'ho scritto dall'ultima pagina. Senza il codice è difficile dirvi qualcosa di specifico.
Per favore, lasciatelo sul forum se non vi dispiace. Qualcuno lo correggerà. Mi sto già infilando nel letto - sono le 5:30 del mattino, il cavallo è ancora sveglio...
C'è un altro momento strano qui. Se ci sarà un elemento della struttura di tipo stringa, se il numero di caratteri variabili di questo elemento è più di 7, lo metteremo sopra il resto? Dopo tutto, le stringhe hanno sempre un carattere nullo \n alla fine della stringa e se ci sono più di 7 elementi nella stringa, per esempio, 8 elementi, la stringa avrà 8 + 1 byte perché 8 + \n. Giusto?
Se la struttura contiene variabili di tipo stringa e/o oggetto di array dinamico, il compilatore assegna un costruttore implicito a tale struttura, dove tutti i membri della struttura di tipo stringasono azzerati e vieneeseguita una corretta inizializzazione per l'oggetto di array dinamico.
Non si possono scrivere codici così distrattamente :)
Prima, Comment("USDCADAsk = ",USDCADAsk); poi USDCADAsk = DoubleToString(MarketInfo("USDCAD",MODE_ASK),usdcaddigits); USDCADAsk è dichiarato come un doppio, ma tu ci metti una stringa,
e poi Digits.... di nuovo ^) e Punto
Dovete cercare voi stessi tali errori, nessuno li aggiusterà per voi come il commercio! Il compilatore genera 28 errori e voi mettete la demo nel trading. Avresti voluto usare soldi veri, ma il mercato ti avrebbe corretto!
if (USDCHF){while(IsTradeContextBusy()){Sleep(10);}
RefreshRates();
Result[1] = OrderSend("USDCHF",OP_BUY,Lot,USDCHFAsk,slip,USDCHFAsk-NormalizeDouble(sl*Point,Digits),USDCHFAsk+NormalizeDouble(tp*Point,Digits),"USDCHF",magic[0],0,Red);
if (Result[1] < 0){Alert("Функция OpenOrders ","\n","Валютная пара "+"USDCHF","\n",
"Команда: открыть ордер Sell","\n", "Ответ сервера: " ,errors(GetLastError()) );}}
if (USDJPY){while(IsTradeContextBusy()){Sleep(10);}
RefreshRates();
Result[2] = OrderSend("USDJPY",OP_BUY,Lot,USDJPYAsk,slip,USDJPYAsk-NormalizeDouble(sl*Point,Digits),USDJPYAsk+NormalizeDouble(tp*Point,Digits),"USDJPY",magic[0],0,Red);
if (Result[2] < 0){Alert("Функция OpenOrders ","\n","Валютная пара "+"USDJPY","\n",
"Команда: открыть ордер Sell","\n", "Ответ сервера: " ,errors(GetLastError()) );}}
Di chi è il Bid Ask?
//-----------void CloseOrders(){
for (int i = OrdersTotal()-1; i>=0; i--){
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if (OrderMagicNumber() == magic[0]){
if (USDBuySl || USDBuyTp){
while(IsTradeContextBusy()){Sleep(10);}
RefreshRates();
OrderClose(OrderTicket(),OrderLots(),Bid,slip,Blue);
}
}
.................
OrderClose(OrderTicket(),OrderLots(),Ask,slip,Blue);
Aiutatemi a trovare il valore massimo dell'indicatore N per il giorno precedente, ottengo i dati attraverso iCustom e poi un blocco. Penso che sia fatto attraverso ArrayMaximum, ma come trovare il valore
Non so cosa dovrebbe fare iCustom, non riesco a pensare ad altre opzioni.
No, se mettete prima int slippage alloca 4 byte, quindi dovete aggiungere fino a 8 (int reserve) o usare long invece di int
C'è un altro momento strano qui. Se è un elemento di una struttura di stringhe, allora se il numero di caratteri variabili di questo tipo di stringa è più di 7, lo metteremo sopra gli altri? Perché le stringhe hanno sempre un carattere nullo \n alla fine della stringa, e se ci sono più di 7 elementi nella stringa, per esempio, 8 elementi, allora la stringa avrà 8 + 1 byte, perché 8 + \n. Giusto?
129 errore si verifica quando il prezzo ha il tempo di cambiare prima che il DC esegua il tuo ordine, usa uno slippage più grande.
Lo slippage è di 50 vecchi pip, il prezzo dopo il punto decimale ha 5 o 4 cifre, a volte è 12 o 16. L'ho testato su una demo.
No, non nel tester, solo un conto demo.
Ho già notato il tuo post e ho cancellato il mio - l'ho scritto dall'ultima pagina. Senza il codice è difficile dirvi qualcosa di specifico.
Te lo mando nel forum o in privato?
Vuoi che lo pubblichi sul forum o di persona?
C'è un altro momento strano qui. Se ci sarà un elemento della struttura di tipo stringa, se il numero di caratteri variabili di questo elemento è più di 7, lo metteremo sopra il resto? Dopo tutto, le stringhe hanno sempre un carattere nullo \n alla fine della stringa e se ci sono più di 7 elementi nella stringa, per esempio, 8 elementi, la stringa avrà 8 + 1 byte perché 8 + \n. Giusto?
Se la struttura contiene variabili di tipo stringa e/o oggetto di array dinamico, il compilatore assegna un costruttore implicito a tale struttura, dove tutti i membri della struttura di tipo stringasono azzerati e vieneeseguita una corretta inizializzazione per l'oggetto di array dinamico.
Anch'io sto dormendo.
File allegati:
Kuklovod_USD_1.1.mq4
Non si possono scrivere codici così distrattamente :)
Prima, Comment("USDCADAsk = ",USDCADAsk); poi USDCADAsk = DoubleToString(MarketInfo("USDCAD",MODE_ASK),usdcaddigits); USDCADAsk è dichiarato come un doppio, ma tu ci metti una stringa,
e poi Digits.... di nuovo ^) e Punto
Dovete cercare voi stessi tali errori, nessuno li aggiusterà per voi come il commercio! Il compilatore genera 28 errori e voi mettete la demo nel trading. Avresti voluto usare soldi veri, ma il mercato ti avrebbe corretto!
Di chi è il Bid Ask?
Corretto
Non so cosa dovrebbe fare iCustom, non riesco a pensare ad altre opzioni.