[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 610

 

if(Stoch_1>Stoch_2) { flag1=1 ; Stampa (flag1,flag2,flag3,flag4); }


if(Stoch_1<Stoch_2 && flag1==1) flag2=1 ; Print (flag1,flag2,flag3,flag4); }

if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1; Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav");}


if(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1;
{Stampa (flag1,flag2,flag3,flag4);}
if(Stoch_1>Stoch_2 && flag1==1 && flag2==1 && flag3==1 && flag4==1)
{OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, 0, 0, NULL, 450, 0, CLR_NONE);
Stampa ("OUT");}



flag1=0;
flag2=0;
flag3=0;
flag4=0;

Capendo che imparerai e per il gusto di imparare scrivi qualcosa... Almeno ho sistemato le tue parentesi in modo che abbiano un ruolo, secondo me.

 
Dimka-novitsek:

Buon pomeriggio! Per favore aiutatemi con la modifica dell'ordine, cioè il ciclo di selezione dell'ordine per la sua condizione. Trovo prima un ordine innescato a TakeProfit, è un ordine specifico con il ticket tacket. Così, il ciclo fallisce circa una volta su dieci, il che è indicato dalla differenza di linee verdi e blu nel tester. E la visualizzazione - stop loss a volte non si muove.

In generale, aiuto, per favore!

Condizione

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
1 .Выполняется, если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла.
2. Чтобы найти ордер, сработавший именно по тейкпрофиту надо сравнить значение ТП со значением цены закрытия ордера
3.  Если вам нужен не любой ордер,закрытый по ТП, надо найти последний.
4. Еси в if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)) используется значение tucket, Выбранное в предыдущем цикле, ордер нельзя модифицировать, потому, что он уже закрыт. 
 

1.Eseguito se non ci sono ordini nella storia del terminale e non ha senso continuare il ciclo in quel caso.

Grazie!!! È lì che sta andando tutto a rotoli. Oh, mio Dio! Come ha fatto a modificarsi una volta ogni tanto?

2. Per trovare un ordine attivato esattamente al Take Profit, dobbiamo confrontare il valore TP con il prezzo di chiusura dell'ordine

Seleziono prima un certo ordine nel ciclo della storia e poi mi sembra di confrontarlo in quel modo.

 
Per tradurre il titolo in un commento, invece di continuare a incollare il codice, è necessario alla fine della linea ;?
 

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continua; Nel mio ciclo, è così - se non ci sono ordini nella storia del terminale, e non ha senso continuare il ciclo in quel caso, allora continua!

Quindi è così, no?

Wow, indovinello!!!

 
Alla fine della stringa //commento-qualunque cosa oltre i due slash o qualunque cosa il compilatore non legge.
 
Dimka-novitsek:

1.Eseguito se non ci sono ordini nella storia del terminale e non ha senso continuare il ciclo in quel caso.

Grazie!!! È lì che sta andando tutto a rotoli. Oh, mio Dio! Come ha fatto a modificarsi una volta ogni tanto?

2. Per trovare un ordine attivato esattamente al Take Profit, dobbiamo confrontare il valore TP con il prezzo di chiusura dell'ordine

Seleziono prima un certo ordine nel ciclo della storia e poi mi sembra di confrontarlo in quel modo.


Se un ordine specifico, cioè si conosce il numero del biglietto, non è necessario un ciclo, basta selezionareOrderSelect(ticket,SELECT_BY_TICKET, MODE_HISTORY)
 
Grazie!!! Ci proverò!
 
Dimka-novitsek:

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continua; Nel mio ciclo è così - se non ci sono ordini nella storia dei termini, e non ha senso continuare il ciclo in quel caso, allora continua!

Quindi è così, no?

Wow, un indovinello!!!


Poibreak oreturn.continue; -- l'operatore di continuazione del ciclo.
 
ilunga:

Allora perché confrontate la stessa cosa un sacco di volte di seguito?

Beh, come pensate che debba essere paragonato?