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

 
Roger:
Prova a riavviare il tuo terminale.

:) Grazie! Riavviare il terminale non ha aiutato, ma riavviare il mio cervello sì! Uso diversi blocchi nel mio EA - blocco di trading, blocco di criteri, blocco di variabili, blocco di funzioni aggiuntive, ecc. Così stavo cambiando il blocco dei criteri di trading "Criteria", e avevo bisogno di "Criteria01". Questo è il trucco... :)

ZZZ... cominciavo a credere al "drubashki"... :) Avrei dovuto dormire un po'...

 
itum:
PER FAVORE AIUTATEMI!!! Nel seguente codice controllo se l'ordine era redditizio o no! Se non conto la quantità !!!
Se il primo trade non era redditizio, allora il ciclo di conteggio è iniziato e viene aggiunto per sempre.

Ma c'è una tale fregatura!!! Se un affare è redditizio, allora tutti gli ulteriori ordini perdenti sono contati normalmente ....

double orderProf; // Contatore del numero di trade perdenti

double CalculateLots(){
doppio Res=0,01;
bool bProfit=true;
int PrevTime=-1;
doppio tmpLots;
for (int i=0;i<OrdersHistoryTotal();i++){
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continua;
se (OrderSymbol()!=Symbol()) continua;
se (OrderCloseTime()<PrevTime) continua;
PrevTime=OrderCloseTime();
if (OrderProfit()>0){bProfit=true; orderProf=0;} if (OrderProfit()<0){bProfit=falso; orderProf++;}
tmpLots=OrderLots();
}


ritorno(Res);
}
Ti ho dato un link a Igor Kim... Lì troverai un sacco di chicche per le tue esigenze...
 
artmedia70:
Ti ho dato un link a Igor Kim... Ci sono molte cose di cui avete bisogno per le vostre esigenze...

DAK! È lo stesso del mio ....

Il PROBLEMA è che la prima volta non conta normalmente, ma dopo conta normalmente.... )))

aiuto ...

 

L'enigma è questo.

L'indicatore alla fine del codice crea un oggetto, che serve come flag per un altro indicatore.

Dopo aver creato l'oggetto, ho bisogno di "addormentare" l'indicatore per 5 secondi, poi cancellare l'oggetto e addormentarlo per 60 secondi, dopo di che va all'ultimo tentativo e ricomincia con un nuovo tick.

Cercando di fare questo

      int pauseT=0, // 
          pause01=0, // время первой паузы
          pause02=0; // время второй паузы
         if (ObjectFind("signalG")==1) // проверка наличия
         pause01=TimeLocal()+5; // 
         {while (TimeLocal()<pause01) // цикл сравнения
         {pauseT=TimeLocal()+1;} // чем бы его занять?????
         ObjectDelete("signalG");}
         if (ObjectFind("signalG")==-1) // повтор всего для 2-ой паузы
         pause02=TimeLocal()+15;
         while (TimeLocal()<pause02)
         {pauseT=TimeLocal()+1;}

Si blocca fino a quando sembra esaurire il tempo.

Qualche consiglio su come farlo?

 
Abzasc:

L'enigma è questo.

L'indicatore alla fine del codice crea un oggetto, che serve come flag per un altro indicatore.

Dopo aver creato l'oggetto, ho bisogno di "addormentare" l'indicatore per 5 secondi, poi cancellare l'oggetto e addormentarlo per 60 secondi, dopo di che andrà all'ultimo tentativo e ricomincerà dall'inizio con un nuovo tick.

Cercando di fare questo

Si blocca fino a quando sembra esaurire il tempo.

Qualche consiglio su come farlo?

Mazza... :):) Scusa, non potevo resistere... :)
 
artmedia70:
Mazza... :):)
Come timer? Entrerà in un sonno letargico :)
 
Abzasc:
Come timer? Andrà in un sonno letargico :)
Beh... quando avrà bisogno di essere solleticato, si sveglierà... :)
Ok, questo è fuori tema. Vorrei poter essere più specifico. Uno per svegliarlo, uno per metterlo giù, uno per inchiodarlo...
E l'alimentazione? :)
 
artmedia70:
maggiori dettagli su
Fai una pausa dell'indicatore. Una specie di sonno.
 
Abzasc:
Fate una pausa nell'indicatore. Un po' come il sonno.

Cosa c'è che non va con il sonno?

E anche - quando si controlla la presenza di un oggetto

         if (ObjectFind("signalG")==1) // проверка наличия
si confronta con il numero di sottofinestra dell'indicatore. E se ce ne sono due?
È meglio confrontare con una variabile che è assegnata al numero di sottofinestra dell'indicatore desiderato.

Questo è il modo in cui cerco:

 int WinID=WindowFind("A/D");               // Номер окна AD

E poi controllo già la presenza della sottofinestra:

// --------------- Начертим восходящую трендовую линию (DN - экстремумы) ---------------------            
             
               if (WinID>0)   // Если окно индикатора есть на чарте (оно может иметь любой номер, кроме 0)
                  {
                     if (ObjectFind("Trend_GLine_DN")<0)     // Если объект ещё не построен
                     ObjectCreate("Trend_GLine_DN",OBJ_TREND,WinID,LowestTDN,LowestPeakDN,HighestTDN,HighestPeakDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_COLOR,Lime);
                     ObjectSet("Trend_GLine_DN",OBJPROP_TIME1,LowestTDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_PRICE1,LowestPeakDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_TIME2,HighestTDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_PRICE2,HighestPeakDN);
                  }
 
artmedia70:

Cosa non ti piace del sonno?

Non funziona negli indicatori. Il motivo per farlo in questo modo - non lo capisco. A quanto pare, un indicatore costantemente funzionante dovrebbe ipnotizzare :)
artmedia70:

E se ne avessi due?

Non lo farà. Mi sbarazzo solo delle finestre non necessarie.

Avrò bisogno di un controllo più tardi, però, ma spero per l'EA :) grazie, ne prenderò nota.