Un prezzo limite non trasforma un tocco sul grafico in un’operazione confermata. Questo modello didattico M1 fissa un range, ammette solo la chiusura di breakout immediatamente successiva e inserisce un ordine pendente per il primo ritorno. L’ordine ha durata limitata, mentre lo stato del conto deriva dai report verificati del broker. Gli esempi distinguono un tocco solo Bid, un ritorno non eseguito, una scadenza confermata e un’esecuzione durante l’annullamento.
1. Definire un’ipotesi completa sul primo ritorno
La strategia studia il primo ritorno dopo un piccolo range completato e il suo breakout immediato. Il problema principale è l’esecuzione: l’ordine pendente è stato accettato, eseguito, scaduto o annullato? La sequenza differisce dall’ingresso a mercato dopo due gambe di ritracciamento o da un rientro dopo un falso breakout. Il modello non utilizza EMA, RSI, SAR, ADX, ATR né pivot confermati da candele future.
È una specifica didattica riproducibile, non un EA installabile o un sistema validato sul reale. Numero di candele, distanze e limiti temporali sono ipotesi dichiarate. Tutte le coppie Bid/Ask e i report sono inventati. Un’intenzione d’attesa limitata non garantisce che il conto sia effettivamente privo di esposizione nello stesso istante.
2. Fissare contratto, orologio UTC e blocco del conto
Usa OHLC Bid di EURUSD M1 già chiusi con pip=0.0001; point=tick=0.00001; contract=EUR100,000/lot; pip_value=$10/lot su un conto in USD. Aperture e chiusure di tutte le candele della formazione e inserimento devono rispettare 09:00<=UTC<12:00. Prima della ricerca verifica l’intero conto: nessuna posizione, ordine pendente, altra esposizione o richiesta irrisolta. Devono essere noti contratto e margine e disponibili protezioni iniziali collegate e scadenza sul server.
Verifica la corrispondenza tra UTC e orologio del server del broker, comprese le variazioni del fuso. Gli esempi assumono esplicitamente server_UTC_offset=0; known_event_list=[]. Una lista nota di eventi blocca l’inserimento durante [event−15 min,event+15 min]; l’intervallo è una politica di ricerca ipotizzata. Orologio, calendario o dati sconosciuti impediscono nuovi ordini. Un pendente esistente o una risposta irrisolta continua a bloccare il conto.
3. Fissare il primo range indipendente di cinque candele
Dopo una liberazione verificata, prendi i primi cinque intervalli M1 consecutivi realmente chiusi le cui aperture non precedono tale liberazione. Fissa H=max(High1..High5); L=min(Low1..Low5); 6<=(H−L)/pip<=10. Consuma il blocco prima di verificarne l’ampiezza. Non far scorrere un blocco già consumato per trovare un range migliore; intervalli mancanti o blocchi invalidi richiedono un nuovo inizio dopo aver osservato il fallimento.
La sesta candela è l’unico posto ammesso per il breakout B. Il range principale è 09:00–09:05 UTC; H=1.20080; L=1.20000; width=8 pip. Gli estremi sono già noti, non pivot scelti successivamente. Il cambio del minuto non prova da solo la chiusura: verifica l’intervallo quando arrivano i dati della candela seguente. Dopo rifiuto, uscita verificata, fine di una sospensione o ripristino dei dati, cancella il vecchio range e richiedi aperture completamente nuove.
4. Ammettere solo la chiusura di breakout immediatamente successiva
Per BUY richiedi Close(B)>Open(B); 0.5<=(Close(B)−H)/pip<=4.0. La versione speculare SELL richiede Close(B)<Open(B); 0.5<=(L−Close(B))/pip<=4.0. B è esattamente l’intervallo seguente; non aspettare una chiusura più tarda. Uguaglianza sul bordo, doji, corpo contrario o distanza eccessiva consumano il ciclo senza ordine.
Il BUY principale presenta B=k5; close_time=09:06 UTC; Close=1.20110; distance=3.0 pip. Un altro caso chiude a 1.20080=H e fallisce. La candela seguente chiude a 1.20110, ma non può sostituire B. In seguito un range davvero nuovo può generare un ciclo diverso; non recupera retroattivamente quello precedente.
| Ora UTC | Ruolo | Apertura | Massimo | Minimo | Chiusura |
|---|---|---|---|---|---|
| 09:01 UTC | R1 | 1.20020 | 1.20045 | 1.20000 | 1.20035 |
| 09:02 UTC | R2 | 1.20035 | 1.20070 | 1.20025 | 1.20060 |
| 09:03 UTC | R3 | 1.20060 | 1.20080 | 1.20040 | 1.20050 |
| 09:04 UTC | R4 | 1.20050 | 1.20065 | 1.20020 | 1.20030 |
| 09:05 UTC | R5 | 1.20030 | 1.20075 | 1.20025 | 1.20070 |
| 09:06 UTC | B | 1.20070 | 1.20120 | 1.20065 | 1.20110 |
5. Definire prezzo pendente e protezioni fisse
Alla chiusura B valida scegli P_buy=H+0.1 pip; P_sell=L−0.1 pip. BUY fissa S_bid=P_buy−3.5 pip; T_bid=P_buy+8.0 pip e SELL S_ask=P_sell+3.5 pip; T_ask=P_sell−8.0 pip. Tutti i prezzi devono essere allineati al tick dichiarato. Gli scostamenti sono ipotesi esplicite del modello, non distanze ottimizzate né candele Ask storiche ricostruite.
Il BUY principale usa P=1.20081; S_bid=1.20046; T_bid=1.20161; SELL usa P=1.19919; S_ask=1.19954; T_ask=1.19839. Mantieni invariati questi livelli assoluti dopo inserimento ed esecuzione. Non sono previsti trailing, spostamento a pareggio, mediazioni, uscite parziali, posizioni opposte o sostituzione con un ordine a mercato. Se il broker non supporta entrambe le uscite iniziali e la scadenza richiesta, salta l’evento.
6. Consumare una sola prima quotazione dopo B
Esamina soltanto la prima coppia ricevuta dopo la chiusura programmata di B, verificando anche che B sia davvero completata. Richiedi arrival<=B_close+1.000 s; 0<=quote_age<=250 ms; 0<=spread<=0.6 pip. I prezzi devono essere positivi, non incrociati e allineati al tick. Richiedi Ask>P_buy for BUY; Bid<P_sell for SELL: il primo ritorno sul lato corretto non deve essere già avvenuto. Ricontrolla finestra UTC, conto libero, contesto, distanze correnti del broker, volume, margine disponibile, orologio e supporto di protezioni e scadenza.
La coppia principale è 09:06:00.100 quote; 09:06:00.120 arrival; Bid/Ask=1.20110/1.20116. Solo superando tutti i controlli è ammessa una richiesta di inserimento con livelli e scadenza fissi. Una prima coppia inadatta, vecchia o fuori tempo consuma il permesso; non sostituirla con una successiva. Uno stop level locale pari a zero non garantisce accettazione. L’argomento slippage del terminale non garantisce il prezzo di esecuzione di un pendente.
7. Mantenere l’intera versione SELL sul lato corretto
SELL fissa il bordo inferiore del range, richiede la chiusura ribassista immediatamente seguente al di sotto e inserisce Sell Limit sotto quel bordo mentre Bid resta sotto P. Il primo ritorno corretto è Bid>=P_sell; BUY usa Ask<=P_buy. Dopo la conferma dell’eseguito, le uscite BUY si verificano su Bid e quelle SELL su Ask. I soli OHLC Bid non rivelano precedenti tocchi Ask né priorità di esecuzione.
L’esempio SELL è eseguito a 1.19919. La successiva coppia Bid/Ask=1.19948/1.19954 raggiunge lo stop Ask mentre Bid resta inferiore. L’uscita peggiorativa fornita è Ask=1.19964; net=−$28.56 e supera il budget pianificato. Il risultato monetario illustrato deriva dal report, non da un prezzo conveniente sul grafico. Trigger Ask scelti con geometria Bid non sono OHLC Ask storici.
8. Separare scadenza dell’attesa e conto libero confermato
Il termine del pendente è D_wait=min(B_close+120 s,12:00 UTC). Richiedi questa scadenza esplicita del server con la conversione UTC verificata e controllala nell’accettazione. Ritira anche l’intenzione di attesa a D_wait tramite un timer connesso e calibrato. Una scadenza o una richiesta di cancellazione non provano che poco prima non vi sia stata un’esecuzione. Riconcilia ticket, posizioni e storico prima di liberare il blocco.
Nel ciclo principale B_close=09:06; D_wait=09:08 UTC. Il caso del ritorno tardivo fornisce server_expired=09:08:00.000; verified_flat_observed=09:08:00.060; il primo ritorno Ask avviene a 09:08:00.100. Non è ammessa una sostituzione. Scadenza sconosciuta o non supportata blocca l’inserimento. Un rifiuto definitivo della scadenza con error=147 termina il ciclo; non eliminare mai la scadenza per riprovare lo stesso evento.
9. Dimensionare sullo spazio netto usando P come prezzo pianificato
Il piano usa P, non un eseguito dedotto da un tocco. Con c=0.3 exit reserve+0.6 linear round-trip commission=0.9 pip, BUY ha L=(P−S_bid)/pip+c; W=(T_bid−P)/pip−c e SELL L=(S_ask−P)/pip+c; W=(P−T_ask)/pip−c. L e W devono essere positivi e rispettare W/L>=1.50. I corretti lati d’ingresso e d’uscita incorporano già lo spread; non sommarlo di nuovo. Non si ipotizzano finanziamenti o altri costi.
Usa equity=$10,000; risk_fraction=0.25%; budget=$25; lot_min=lot_step=0.01; lot_max=1.00 e lots=floor_step(25/(L×10),0.01). Il piano principale restituisce L=4.4; W=7.1; W/L=1.6136364; lots=0.56; planned_loss=$24.64; planned_net_target=$39.76. Rifiuta volume incompatibile o margine indisponibile. P è un’ipotesi di pianificazione, non una promessa di esecuzione. Ridurre il volume non corregge un rapporto netto lineare insufficiente. Gap e altre condizioni di esecuzione possono superare il budget previsto.
| Osservazione | Prezzo pendente | Stop | Target | Perdita, pip | Target netto, pip | W/L netto | Lotti previsti | Perdita prevista, USD | Target netto previsto, USD |
|---|---|---|---|---|---|---|---|---|---|
| BUY | 1.20081 | 1.20046 | 1.20161 | 4.4 | 7.1 | 1.6136364 | 0.56 | 24.64 | 39.76 |
| SELL | 1.19919 | 1.19954 | 1.19839 | 4.4 | 7.1 | 1.6136364 | 0.56 | 24.64 | 39.76 |
| Nuovo setup indipendente / BUY | 1.20131 | 1.20096 | 1.20211 | 4.4 | 7.1 | 1.6136364 | 0.56 | 24.64 | 39.76 |
10. Distinguere tocco Bid, ritorno corretto ed eseguito
Per BUY la coppia 09:06:30.000; Bid/Ask=1.20081/1.20087 tocca P soltanto in Bid. Il vero ritorno Ask è 09:06:40.000; Bid/Ask=1.20075/1.20081. Sono due osservazioni distinte della coppia. Nel caso principale l’eseguito fornito a P è noto a 09:06:40.010, prima che la quotazione del ritorno arrivi a 09:06:40.020; la posizione eseguita viene quindi gestita senza richiesta di cancellazione.
Riconcilia i report disponibili prima di agire a ogni osservazione. Se il primo tocco del lato corretto arriva mentre l’ultimo stato verificato è ancora pendente, ritira l’evento e richiedi un solo annullamento; non aspettare un secondo tocco. Il caso non eseguito chiede la cancellazione a 09:06:40.020 e fornisce annullamento e conto libero confermati a 09:06:40.080. Se il ritorno precede la conferma d’inserimento, registra l’intenzione di ritiro e riconcilia prima; annulla una volta solo quando è noto un ticket pendente. Un eseguito confermato dopo il ritiro richiede la regola d’emergenza.
| Ora UTC | Bid / Ask | Prezzo pendente | Stato |
|---|---|---|---|
| 09:06:30.000 UTC | 1.20081 / 1.20087 | 1.20081 | Tocco solo Bid |
| 09:06:40.000 UTC | 1.20075 / 1.20081 | 1.20081 | Ritorno Ask |
11. Annullare una sola volta un’idea pendente invalidata
Finché l’ordine risulta verificato come pendente, ritiralo a scadenza, in assenza di dati o calendario, durante il blocco per notizie, con coppia invalida oppure spread>0.8 pip. Ritiralo anche se il lato d’uscita raggiunge il target prima dell’eseguito o se una candela M1 effettivamente chiusa e osservata rientra oltre il bordo: Close<=H for BUY; Close>=L for SELL. Sono politiche dichiarate, non garanzie che la richiesta anticipi la prossima esecuzione sul server.
Il caso d’invalidazione presenta k6 Close=1.20078<H=1.20080, osservato dopo l’inizio dell’intervallo seguente. L’annullamento è richiesto a 09:07:00.120 e il conto libero verificato arriva a 09:07:00.180. Un ritorno corretto successivo a 09:07:20.000 non crea un altro ordine. Invia al massimo una richiesta di annullamento per ticket noto. Rifiuto, freeze level, problemi di connessione o timeout mantengono il blocco; riconcilia senza cancellare ripetutamente, sostituire o allargare i livelli.
12. Gestire un’esecuzione durante l’annullamento
Nel caso di sovrapposizione, una quotazione con spread ampio provoca la richiesta di cancellazione a 09:06:30.020. Il server esegue poi a 09:06:30.030; P=1.20081, noto a 09:06:30.040. Il tentativo di cancellazione non ha eliminato la posizione. Il rifiuto viene osservato a 09:06:30.080. Vincoli di congelamento del broker e tempi dei messaggi possono impedire l’annullamento desiderato; qui solo il report fornito stabilisce lo stato.
Un’esecuzione confermata dopo l’intenzione di ritiro conserva la protezione collegata e consente una sola chiusura d’emergenza sulla prima quotazione affidabile del lato corretto dopo la conferma. Qui la richiesta è 09:06:30.050 e l’uscita fornita Bid=1.20074; net=−$7.28. Mantieni il blocco fino alla chiusura verificata; una risposta incerta resta irrisolta. Un’assenza imprevista della protezione iniziale richiede la stessa gestione. Non spostare mai i livelli per forzare l’accettazione e non trattare l’intenzione di annullare come un’operazione a risultato zero.
13. Gestire la posizione normalmente eseguita fino al termine fisso
Dopo accettazione ed esecuzione normale del primo ritorno, conserva la protezione iniziale e usa D_position=min(B_close+10 min,12:00 UTC). Il riferimento è B, non un eseguito successivo né la fine dell’attesa. Se non c’è stata un’uscita protettiva, invia una sola richiesta di chiusura sulla prima quotazione disponibile e affidabile del lato corretto al termine o dopo. La protezione ha priorità sulla stessa quotazione e resta attiva mentre la risposta alla chiusura è pendente.
Il caso di uscita temporale usa D_position=09:16 UTC; first_quote=09:16:00.100; arrival=09:16:00.120. L’uscita BUY fornita è Bid=1.20076; net=−$6.16. L’assenza di una quotazione al termine non significa conto libero; l’ultimo prezzo vecchio non è un’esecuzione inventata sul confine. Verifica lo stato effettivo dopo la chiusura. Un timeout non autorizza un’altra posizione o una seconda richiesta basata solo su un’ipotesi.
14. Lasciare irrisolte le risposte sconosciute e ripartire da candele nuove
Distingui placement_permission=B_close+1 s; pending_expiry=B_close+120 s; ack_timeout=request_time+2 s. Senza risposta all’inserimento, accettazione ed esecuzione sono sconosciute. Senza risposta all’annullamento, resta irrisolto lo stato pendente o eseguito. Un successivo prezzo di riferimento sul target non dimostra né esecuzione né profitto. Lascia vuoti ingresso eseguito, uscita e P&L finché prove autorevoli non risolvono lo stato; non ripetere lo stesso evento.
Dopo rifiuto definitivo o conto libero confermato, elimina il vecchio setup. Nel riavvio indipendente il B fallito è osservato a 09:06:00.120; solo nuove aperture da 09:07 formano le cinque candele successive. Il suo B=k12; close=09:13; P=1.20131; S_bid=1.20096; T_bid=1.20211 genera una richiesta, definitivamente rifiutata con error=130. Il vecchio B fallito e la candela successiva apparentemente interessante rimangono respinti. Uno stato del conto incerto non si sblocca solo perché sono trascorsi altri minuti.
15. Riprodurre osservazioni e risultati inventati
I file contengono 14 independent cases; 24 closed bars/case; 336 Bid bars; 15 declared formation windows; 1,375 paired quotes; 1,419 ledger rows. Ogni caso osserva un ciclo dichiarato, tranne il riavvio che ne comprende due. Le quotazioni successive descrivono il contesto di quel ciclo, non una nuova ricerca esaustiva. Il registro distingue 12 simulated placements; 4 cancel requests; 2 close requests; 4 supplied fills; 0 live orders. Tempi di quotazione e ricezione sono separati; una quotazione della candela seguente in formazione conferma l’ultimo intervallo chiuso senza aggiungere un’altra candela chiusa.
Il flusso inventato resta costante tra gli aggiornamenti elencati. Le sue coppie riproducono gli OHLC Bid esportati; non ricostruiscono Ask storico, coda o priorità di esecuzione. I risultati chiusi forniti, dopo la commissione dichiarata, sono target +$41.44; gap stop −$28.56; time exit −$6.16; cancellation race −$7.28. Casi non eseguiti e irrisolti lasciano vuoti i risultati d’esecuzione. Ricalcola finestre complete, primi tocchi corretti, transizioni riportate, volume e importi; questi quattro esiti non sono statistiche di rendimento.
Scarica osservazioni fittizie Bid M1 (CSV)
Scarica finestre dichiarate e risultati (CSV)
Scarica coppie di quotazioni, richieste e report (CSV)
| Stato | Richieste di inserimento | Eseguito riportato | Uscita riportata | P&L netto inventato, USD |
|---|---|---|---|---|
| CLOSED_TARGET | 1 | 1.20081 | 1.20161 | +41.44 USD |
| CLOSED_STOP | 1 | 1.19919 | 1.19964 | -28.56 USD |
| CLOSED_TIME | 1 | 1.20081 | 1.20076 | -6.16 USD |
| CLOSED_CANCEL_RACE | 1 | 1.20081 | 1.20074 | -7.28 USD |
| CANCELLED_NO_FILL | 1 | — | — | — |
| PLACEMENT_UNCERTAIN | 1 | — | — | — |
| CANCELLATION_UNCERTAIN | 1 | — | — | — |
16. Testare l’intero protocollo su dati cronologici mai usati
Fissa range, posizione del breakout, lati del prezzo, costi, termini e annullamenti prima della ricerca. Conserva ogni finestra ammissibile e ogni prima coppia respinta, non solo gli eseguiti. Servono coppie Bid/Ask affidabili per distinguere un tocco solo Bid da un ritorno Ask. Per misurare gli esiti servono prove reali di accettazione, rifiuto, annullamento ed esecuzione; i soli OHLC non forniscono un modello di esecuzione dei pendenti.
Valuta blocchi per notizie, variazioni dello spread, quotazioni mancanti, scadenza server, freeze level, risposte tardive ed esecuzioni durante la cancellazione con le stesse ipotesi di conto. Registra come cambia il calendario ammissibile a ogni modifica di una regola. Usa periodi cronologici mai utilizzati e condizioni realistiche del broker. Lo scopo è un’ipotesi limitata e verificabile sul primo ritorno; la meccanica inventata non dimostra vantaggio né idoneità al reale.
Domande frequenti
Una candela Bid che tocca P prova che Buy Limit è stato eseguito?
No. Buy Limit osserva Ask per il ritorno corretto, mentre il grafico normale contiene Bid. Anche un tocco Ask è solo un’osservazione; l’eseguito richiede un report del broker.
Posso sostituire un ordine scaduto o inseguire il ritorno con un ordine a mercato?
No. Il modello permette un inserimento per questo ciclo. Conferma scadenza o annullamento e assenza di esposizione sull’intero conto; poi richiedi un range completamente nuovo con il suo breakout immediato.
Devo togliere la scadenza se il server restituisce l’errore 147?
No. La scadenza server è parte del modello. Un rifiuto definitivo consuma il ciclo; supporto assente o sconosciuto blocca l’inserimento.
Inviare una richiesta di annullamento significa conto libero?
No. Un’esecuzione può sovrapporsi alla richiesta; freeze level o risposte tardive possono impedire la cancellazione. Verifica ticket, posizioni e storico. Un eseguito confermato dopo il ritiro usa la chiusura d’emergenza protetta.
Cosa significa una risposta sconosciuta all’inserimento o all’annullamento?
Lo stato dell’ordine è irrisolto. Mantieni il blocco e lascia vuoti i risultati. Timeout o target di riferimento raggiunto dopo non provano rifiuto, annullamento o profitto e non autorizzano un altro ordine.
Gli esempi provano che lo scalping con ordini limite è redditizio?
No. Sono osservazioni appaiate inventate e report forniti per controllare la meccanica. Quattro risultati monetari chiusi non dimostrano tasso di successo, valore atteso o vantaggio robusto.
Fonti e note di ricerca
I riferimenti ufficiali descrivono i lati del prezzo, la scadenza, la cancellazione dei pendenti e i vincoli del broker. Range, soglie, tempi e report inventati sono ipotesi didattiche. Non dimostrano impostazioni ottimali, esecuzione storica o redditività. Questa specifica non richiama API di trading.
- MetaTrader4: order types and Bid/Ask triggers
- MQL4: OrderSend and pending expiry restrictions
- MQL4: OrderDelete
- MQL4: broker contract, stop and freeze properties
Specifica didattica per ordini limite. Coppie di quotazioni e report inventati; nessun ordine reale, backtest storico o redditività misurata.