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

 
PapaYozh:

Direi "circa 80".

Direi esattamente 80. E sss2019 ha tutto giusto con i parametri. Ma cos'è questo indicatore selvaggio con così tanti parametri?
 
Ho provato a metterlo al mio posto, è anche lento. Non ho mai visto nulla da esso, ho solo Metatrader.
 
Sepulca:

Ve lo dico esattamente, ce ne sono esattamente 80. E sss2019 ha tutto giusto con i parametri. Ma cos'è questo indicatore selvaggio con così tanti parametri?

Questo è il punto, è corretto, ma è ancora un errore.
 

ha scritto una modifica degli ordini. Quando il prezzo viene raggiunto, sposta lo stoploss al livello del prezzo di apertura. Esce l'errore 130. Non capisco cosa c'è che non va. Ero in grado di scrivere ordini di trailing prima...

if (UseTrailing)
{ 
  for (int trall=0; trall<OrdersTotal(); trall++) 
  {
    if (!(OrderSelect(trall, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol()!=Symb)continue;        
 
    if (Tip==0 && top!=1) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
        if (Bid-OrderOpenPrice() > WithoutLoss*Point   ) 
           {
           if (OrderStopLoss() < Bid-WithoutLoss*Point) 
              {
              OrderModify(Ticket_B, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=1;
               }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

            }
        }
 
    if (Tip==1 && top!=2) 
       {
        RefreshRates();
        SLM=OrderOpenPrice();
       if ( OrderOpenPrice()-Ask > WithoutLoss*Point) 
          {
          if (OrderStopLoss() > Ask+WithoutLoss*Point) 
             {
              OrderModify(Ticket_S, OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0, Blue);
              top=2;
              }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
         continue;                              // Повторная попытка
         return;                                // Выход из start()

           }
         }
 
Egori4:

ha scritto una modifica degli ordini. Quando il prezzo viene raggiunto, sposta lo stoploss al livello del prezzo di apertura. Esce l'errore 130. Non capisco cosa c'è che non va. Ero in grado di scrivere ordini di trailing prima...

State lavorando in un ciclo su tutti gli ordini, ma c'è una certa variabile Tip che non cambia mai e nessuno sa a cosa è uguale. Inoltre, si analizza un ordine e se ne modifica uno completamente diverso con il biglietto memorizzato nella variabile Ticket_B o Ticket_S rispettivamente
 
ilunga:
State lavorando in un ciclo su tutti gli ordini, ma c'è qualche variabile Tip, che non cambia e non sa a cosa equivale. Inoltre si analizza un ordine e si modifica un ordine completamente diverso con il biglietto memorizzato nella variabile Ticket_B o Ticket_S rispettivamente
allora ho bisogno di controllare anche il tipo di ordine(se Tip=0, allora è acquisto, se Tip=1 è vendita. e Ticket_B è acquisto aperto, Ticket_S è vendita aperta)
 
Sepulca:


Quando aprite un ordine pendente, impostate una scadenza, diciamo le 23:59, l'ordine si chiuderà da solo.

nt OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Ho provato a impostare il tempo di scadenza in 24 ore (OrderOpenTime()+86400), ma se l'ordine si apre un'ora o due dopo, si chiuderà anche più tardi...
 

Buon pomeriggio, qualcuno mi aiuti con la funzione WindowScreenShot. Per il 3° giorno nessuno risponde((. Ho scritto il seguente script (vedi file allegato).

In 2 parole sulla sceneggiatura. Lo script è destinato a fare screenshot del grafico corrente della finestra del terminale client. Nella variabile esterna extern datetime Time_bar viene specificato il tempo della barra da cui e fino alla barra zero verrà creata (tenendo conto del rientro destro sul grafico). Nella linea

int bar_number=iBarShift(NULL,0,Time_bar,true)

si cerca il numero di serie della barra che abbiamo specificato nella variabile esterna extern datetime time_bar. La funzione stessa, nella linea

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Ora ecco la domanda... Per semplicità, supponiamo di dover creare uno screenshot delle ultime due barre. Poi, se la linea

int bar_number=iBarShift(NULL,0,Time_bar,true)

è lasciato invariato, il risultato sarà la seguente schermata


Cioè, non c'è nessuna barra nello screenshot (anche se la stringa

int bar_number=iBarShift(NULL,0,bar_time,true)

si dovrebbe calcolare il numero di barre in base al tempo)

Se questa linea è presentata nel modo seguente

int bar_number=iBarShift(NULL,0,Time_bar,true)+2

otterrete lo screenshot che volevamo:

Domanda: perché nel caso in cui questa stringa ha la seguente forma

int bar_number=iBarShift(NULL,0,Time_bar,true)

lo screenshot è preso con uno spostamento di 2 barre a destra di quello specificato nella riga precedente?

P.S. Per non ingombrare il forum, vi ringrazio in anticipo per la vostra risposta
File:
 
Egori4:
mi scusi... non c'è modo di impostare l'ora (non riesco a capire il formato). ho provato a impostare la scadenza in 24 ore (OrderOpenTime()+86400), ma se l'ordine si è aperto un'ora o due dopo, si chiude anche dopo...


Io lo proverei così:

exp=iTime(Symbol(),PERIOD_D1,0)+86340;
Dove iTime(Symbol(),PERIOD_D1,0) è il tempo di apertura della barra del giorno, e 86340 è 23 ore 59 minuti in secondi.
 
Egori4:
allora ho bisogno di controllare anche il tipo di ordine (se Tip=0, allora è comprare, se Tip=1 - vendere. e Ticket_B è aperto comprare, Ticket_S è aperto vendere)

Se avete biglietti memorizzati in Ticket_B e Ticket_S, perché avete bisogno di un ciclo?

Basta selezionare per biglietto e vedere se ci sono condizioni per cambiarlo

Motivazione: