[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 161

 
Si è verificata la seguente situazione: lo Strategy Tester non chiude le posizioni TakeProfit. Il trading è fatto su TF Day, ho guardato i TF più piccoli sui trade in perdita - il prezzo scende/ sale più del livello richiesto per innescare il TakeProfit, ma il trade non viene chiuso, e quando il prezzo raggiunge lo StopLoss, allora la perdita viene fissata. Ho anche provato la visualizzazione - il prezzo passa appena il TakeProfit e questo è tutto. E a volte tutto funziona, e a volte appaiono cose del genere. Proprio ieri tutto andava bene, ma oggi ho eseguito il tester e ho avuto una perdita totale di prestazioni. Ho provato a reinstallare il terminale - non è servito. Non sono sicuro se sto usando un'altra società di intermediazione.
 
beginner666999:
Si è verificata la seguente situazione: Strategy Tester non chiude le posizioni con TakeProfit. Il trading viene fatto su TF Day, ho guardato a TF più piccoli su trade in perdita - il prezzo scende/aumenta più del livello richiesto per l'attivazione del TakeProfit, ma il trade non viene chiuso, e quando il prezzo raggiunge lo StopLoss, la perdita viene fissata. Ho anche provato la visualizzazione - il prezzo passa appena il TakeProfit e questo è tutto. E a volte tutto funziona, e a volte appaiono cose del genere. Proprio ieri tutto andava bene, ma oggi ho eseguito il tester e ho avuto una perdita totale di prestazioni. Ho provato a reinstallare il terminale - non è servito. Non sono sicuro di aver affittato un'altra società di intermediazione.

È tutta una questione di spread, è aumentato per il fine settimana.

È così.

 
r772ra:

È tutta una questione di spread, è aumentato per il fine settimana.

Va più o meno così.


Grazie! Aspetterò i giorni feriali per controllare.
 
r772ra:

È tutta una questione di spread, è aumentato per il fine settimana.

È così.


Devi essere proprio un idiota - ho guardato lo spread per il mio strumento sul sito del broker e sono rimasto stupito - 11 pips! Grazie ancora!
 
Poi un'altra domanda, leggermente fuori tema. Perché aumentano lo spread nel fine settimana? Dopotutto, non c'è nessun commercio in corso in ogni caso.
 
Konstebl:

Per favore, consigliatemi come specificare correttamente la condizione. Se c'è un ordine BUY aperto, se è a pareggio, allora impostiamo BUYSTOP:

statico bool flag ;

se(NewBar())

bandiera = true;

for(i=0;i<totale;i++)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==123)

{

if(OrderType()==OP_BUY)

{

se(OrderStopLoss()>OrderOpenPrice())

{

if(Ask>m && frUP>0 && flag)

{

prezzo = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);

takeprofit = NormalizeDouble(price+tp*Point,Digits);

ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit, "Fractal",123,TimeCurrent()+72000,Blue);

se(biglietto>0)

bandiera = falso;

else

Print("Error ",GetLastError());

}

}

}

}

}

non funziona!!!


Avete provato a mettere le parentesi secondo la logica? Perché finora non ce ne sono.

Ciò che è scritto implica che almeno una posizione è aperta. Altrimenti non ne aprirà di nuovi.

 
Vinin:


Avete provato a mettere le parentesi secondo la logica? Perché finora non c'è nessuno.

Ciò che è scritto implica che almeno una posizione è aperta. Altrimenti non ne verranno aperti di nuovi


Ho scritto un po' più di codice:

 if(NewBar())

     flag = true;    

          for(i=0;i<total;i++)

             {

             OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 

             if(OrderSymbol()==Symbol() && OrderMagicNumber()==123)

                {

                if(OrderType()==OP_BUY || OrderType()<=OP_BUYSTOP)

                   {

                   if(OrderStopLoss()>OrderOpenPrice())

                      {

                      if(Ask>m && frUP>0 && flag)

                         {                

                        price = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);

                        takeprofit = NormalizeDouble(price+tp*Point,Digits);

                        ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit,"Fractal",123,TimeCurrent()+72000,Blue);

                       if(ticket>0)

                        flag = false;

                       else

                        Print("Ошибка ",GetLastError());

                      }

                   }

                }

             }

          }
По идее должно работать,но не хочет.
 
beginner666999:
Poi un'altra domanda, leggermente fuori tema. Perché aumentano lo spread nei fine settimana? Non scambiano comunque.

No, non durante il fine settimana, non l'ho scritto correttamente, lo Spread rimane nel terminale all'ultima quotazione che è arrivata

Così si chiude il terminale durante il giorno, il venerdì. E lo si prova nel fine settimana.

 
r772ra:

No, non durante il fine settimana, non l'ho scritto correttamente, lo Spread rimane nel terminale all'ultima quotazione che è arrivata

Così si chiude il terminale durante il giorno, il venerdì. E lo testi durante il fine settimana.


Capito, grazie! Ha molto più senso in questo modo.
 
Konstebl:


Ho aggiunto un po' di codice:


OK, un po' di logica

if(NewBar())
    flag = true;    
for(i=0;i<total;i++) {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES); 
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==123) {
    if(OrderType()==OP_BUY || OrderType()<=OP_BUYSTOP) {
        if(OrderStopLoss()>OrderOpenPrice()) {
            if(Ask>m && frUP>0 && flag) {                
                price = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits);
                takeprofit = NormalizeDouble(price+tp*Point,Digits);
                ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,Bid-sl*Point,takeprofit,"Fractal",123,TimeCurrent()+72000,Blue);
                if(ticket>0)
                    flag = false;
                else
                    Print("Ошибка ",GetLastError());
            }
        }
    }
}

          }

Il ciclo viene eseguito indipendentemente dalla condizione if(NewBar())

Motivazione: