[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 33

 

Non sono più un principiante, ma è passato molto tempo da quando ho scritto per quattro, quindi sto lottando.

Come faccio a sapere il livello di congelamento se MarketInfo(Symbol(),MODE_FREEZELEVEL)) è sempre uguale a zero,

Ma le riquotazioni (congelamento dell'ordine) avvengono regolarmente?

Per esperienza, ho stabilito che l'errore di modifica del TP appare a volte a livello di 8pp, a volte di 11pp, ma anche 5pp sfuggono (ma molto raramente).

Di conseguenza, non è chiaro come controllarlo per non rischiare riquotazioni.

 
Urain:

Non sono più un principiante, ma è passato molto tempo da quando ho scritto per quattro, quindi sono preoccupato.

Come faccio a sapere il livello di congelamento se MarketInfo(Symbol(),MODE_FREEZELEVEL)) è sempre uguale a zero,

Le requote (sul congelamento degli ordini) arrivano regolarmente?

L'esperienza ha dimostrato che l'errore di modifica TP appare a volte a 8pp, a volte a 11pp, ma anche 5pp sfugge (ma molto raramente).

Di conseguenza, non è chiaro come controllarlo senza requotes.

Esattamente per quanto riguarda il congelamento? Forse uno StopLevel dopo tutto? Il congelamento non è usato in molte società di intermediazione ora (=0).

È questo l'errore?

ERR_TRADE_MODIFY_DENIED 145 Modificare non è permesso perché l'ordine è troppo vicino al mercato
 
artmedia70:

Si tratta di congelamento? Che ne dite di StopLevel alla fine? Molte società di intermediazione non usano il congelamento ora (=0)

È questo errore?

ERR_TRADE_MODIFY_DENIED 145 La modifica non è consentita perché l'ordine è troppo vicino al mercato
Sì freeze, anche se StopLevel marketinfo restituisce anche 0.
 
Urain:
Sì freeze, anche se StopLevel marketinfo restituisce anche 0.
ERR_TRADE_MODIFY_DENIED145La modifica non è consentita perché l'ordine è troppo vicino al mercato ed è bloccato a causa di una possibile esecuzione imminente. Potete aggiornare i dati dopo non prima di 15 secondi usando la funzioneRefreshRates e riprovare.

Vedere qui.

 

Gente, sono quasi alle ginocchia bianche ora.... Come rinominare un file tramite shell32.dll????

Ok:

#import  "shell32.dll"                                                       //Подключим dll (входит в состав windows)       
  int ShellExecuteA(int hwnd,string Operation,string File,string Parameters,string Directory,int ShowCmd); 
#import

.....

rename = ShellExecuteA(0,"Open","ren","\""+FullPathFile+"\" \""+FullPathFile2+"\" ","",3);

Non funziona. Anche se manualmente tramite cmd funziona.

Sto seguendo l'analogia in cui

copyini = ShellExecuteA(0,"Open","xcopy","\""+TerminalPath()+ PuthHistory+"\" \""+PuthTester+PuthHistory+"\" /y/c/k/r/d","",3);
va via senza problemi.
 
charter:
ERR_TRADE_MODIFY_DENIED145La modifica non è consentita perché l'ordine è troppo vicino al mercato ed è bloccato a causa di una possibile esecuzione imminente. Potete aggiornare i dati dopo non prima di 15 secondi usando la funzioneRefreshRates e riprovare.

Vedere qui.

Bene, questo è se hai già ottenuto un errore, ma come evitare l'errore?, come descrivere il controllo per non entrare in un requote?
 
Urain:
Bene, se avete già ricevuto un errore, come evitereste l'errore? Come descrivereste il controllo senza entrare in requote?

Questo errore si verifica con i ciondoli. Non possono essere modificati nella zona FREEZE. Aspetta 15 secondi e riprova.

Se l'errore proviene da un ordine a mercato (il che è improbabile), allora è dovuto solo alla violazione della condizione StopLevel.

 
kiimar:

Gente, sono quasi alle ginocchia bianche ora.... Come rinominare un file tramite shell32.dll????

Formate prima la stringa, usate la stampante per vedere cosa copiate, poi passatela, probabilmente è un problema di percorso. In caso contrario è di nuovo qui.

Forse sono le backslash. \ Il \ è un carattere di controllo, quindi dovrebbe essere "C:\Program Files\..."

Se c'è un'altra opzione -- MoveFileA.

 
charter:

Questo errore si verifica con i ciondoli. Non possono essere modificati nella zona FREEZE. Aspetta 15 secondi e riprova.

Se l'errore proviene da un ordine a mercato, allora è dovuto solo alla violazione della condizione StopLevel.


Qui, come ho capito, l'altro problema è che vengono restituiti degli zeri dopo una richiesta di livello freeze, e di conseguenza una modifica sbagliata e una ri-citazione o un errore di nuovo.

2Urain - Ci sono stati casi di non-zeros che sono stati restituiti dopo aver richiesto questi livelli?

 
TheXpert:

Prima formate una stringa, usate una stampa per vedere cosa copiate, poi passatela, probabilmente è un problema di percorso. In caso contrario, è di nuovo qui.

Forse sono le backslash. \ Il \ è un carattere di controllo, quindi deve essere "C:\Program Files\..."

Se c'è un'altra opzione -- MoveFileA.

Sì, è quello che ho fatto. Ho controllato la linea tramite stampa e poi anche manualmente tramite cmd. Tutto funziona attraverso cmd, ma non attraverso il terminale per qualche motivo. E ora vedo che per qualche ragione solo un comando, xcopy, funziona, il che è strano. Sfortunatamente, non riesco a trovare informazioni dettagliate sulla sintassi e la funzionalità di shell32.dll. Ora proverò MoveFileA.