Discussione sull'implementazione dei consiglieri. - pagina 7

 
Ciao colleghi, chi è in grado di creare un EA basato su 2 indicatori che aprirebbe e chiuderebbe le transazioni agli incroci, vedi foto, l'ho provato io stesso ma non ha funzionato(((((
 
katrina87:
Ciao colleghi, ho una richiesta molto grande per qualcuno che può creare un advisor basato su 2 indicatori che aprirebbe e chiuderebbe i trade agli incroci, vedi l'immagine, l'ho provato io stesso ma non è uscito niente(((((

Io stesso non l'ho usato. L'ho appena visto in un kodobase. Controllalo, forse funzionerà per te. E comunque ci sono più consiglieri come questo in kodobase. Puoi cercare su Google il sito che stai guardando. https://www.mql5.com/ru/code/12375

Советник на основе отскока от границы канала МА
Советник на основе отскока от границы канала МА
  • www.mql5.com
Для торговли используются показания индикатора Moving Average. Если цена отклонилась от линии Moving Average на определенное количество пунктов, то выставляется ордер в сторону линии Moving Average. Советник может приносить прибыль, но она получается маленькой. Также для него требуется большой депозит. На рисунке сплошная красная линия —...
 
Ciao vorrei scrivere un robot di trading, l'idea è semplice e geniale. Per cominciare ho bisogno di un indicatore di livelli di supporto di resistenza per produrre la forza di questi livelli, per esempio: alto medio basso. qualche suggerimento? grazie in anticipo.
 
paradisehell1:
Ciao, voglio scrivere un robot di trading, l'idea è semplice e geniale. Per l'inizio ho bisogno di un indicatore dei livelli di supporto della resistenza per visualizzare la forza di questi livelli, per esempio: alto medio basso. qualche suggerimento? grazie a tutti in anticipo.

Il freelance salverà il gigante del pensiero e padre della democrazia russa.

 
paradisehell1:
Ciao, voglio scrivere un robot di trading, l'idea è semplice e geniale. Per esempio, se volessi usare un robot forex, dovrei cercare un indicatore di livello di supporto che mostri la forza dei livelli di supporto e resistenza, come alto, medio, basso.

Non mi sembra ovvio che questa idea sia brillante. Ecco perché non c'è motivazione. Non posso parlare per nessun altro, ma qualcosa mi dice che è lo stesso per loro. Si può fare in modo che sembri così. Potrebbero non essere in grado di fare trading manuale sulla demo o per davvero, per un paio di mesi almeno. Quanta % hai guadagnato in un mese, qual è stato il livello di margine e il drawdown. Se gli indicatori sono interessanti, si può facilmente trovare qualcuno che li scriva gratuitamente. Ma si può cercare qualcosa in Kodobe. E a proposito, il lavoro dei programmatori è molto economico su questo sito.

 
Ciao, sono quasi sicuro al 100% che la mia domanda è già stata sollevata molte volte. Quindi sarei molto grato se qualcuno potesse dirmi dove cercare. La mia domanda è - come implementare nel mio Expert Advisor la possibilità di fermare il trading quando viene raggiunto un certo profitto? Supponiamo che il profitto sia stato di 200 dollari - tutto qui, non facciamo trading oggi.
 
altec3:
Ciao, sono quasi sicuro al 100% che la mia domanda è già stata sollevata molte volte. Quindi sarei molto grato se qualcuno potesse dirmi dove cercarlo. Domanda - come implementare in un EA la capacità di fermare il trading quando viene raggiunto un certo profitto? Supponiamo che il profitto sia stato di 200 dollari - tutto qui, non facciamo trading oggi.

È per mt4 o dovrebbe essere per mt5?

Immediatamente prima di aprire una posizione mettere un controllo, se il profitto è più che per il periodo - uscire.

void OnTick()
 {
 ...
 if(GetProfitHistoryInCurrency(_Symbol, 0, Magic) > 200) // 0 - сегодня, 1 - вчера, 2 -позавчера
  return;
 
 OrderSend(...);


Leggete tutto il thread, troverete il codice di cui avete bisogno:

Forum sul trading, sistemi di trading automatico e test di strategia

Come calcolare il numero di ordini chiusi in EA

Vitaly Muzichenko, 2016.04.12 10:36

//===============================================================================================
//---------------------- Возвращает профит за выбранный период с истории -----------------------+
//===============================================================================================
double GetProfitHistoryInCurrency(string symb="0", int index=-1, int mg=-1) {
 if(symb=="0") { symb=Symbol();}
 datetime DailyStartTime=iTime(symb,PERIOD_D1,index);
 double DailyProfit=0;
  for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
    if((OrderSymbol()==symb || symb=="") && (mg<0 || OrderMagicNumber()==mg)) {
     if((OrderCloseTime()>=DailyStartTime && OrderCloseTime()<DailyStartTime+86400) || index<0)
      DailyProfit+=(OrderProfit()+OrderCommission()+OrderSwap());
 }}}
  return(DailyProfit);
 }
Использование:  GetProfitHistoryInCurrency(_Symbol, 0, Magic); // 0 - сегодня, 1 - вчера, 2 -позавчера

 
Vitaly Muzichenko:

È per mt4 o dovrebbe essere per mt5?

Immediatamente prima di aprire una posizione mettere un controllo, se il profitto è più che per il periodo - uscire.


Leggi tutto il thread, il codice che ti serve è lì:


Grazie, darò sicuramente un'occhiata! Sì, e il codice è necessario per MT5.
 

Buon pomeriggio!

Sto cercando di scrivere una funzione che determini il profitto del giorno corrente:

//+------------------------------------------------------------------+
//|Функция возвращает прибыль за текущие сутки                       |
//+------------------------------------------------------------------+
double Day_Profit()
  {
//--Запрашиваем историю сделок за последнии сутки
   HistorySelect(TimeCurrent()-PeriodSeconds(PERIOD_D1),TimeCurrent());
   uint     total       =HistoryDealsTotal();   // количество сделок в истории
   ulong    ticket      =0;                     // тикет сделки в истории
   long     type        =0;                     // тип сделки
   double   profit      =0.0;                   // финансовый результат сделки
   double   commission  =0.0;                   // коммиссия по сделке
   double   DayProfit   =0.0;                   // прибыль за текущие сутки
//--- for all deals
   for(uint i=0; i<total; i++)
     {
      if((ticket=HistoryDealGetTicket(i))>0)       //--- если имеются сделки, то...
        {
         profit      =HistoryDealGetDouble(ticket,DEAL_PROFIT);
         commission  =HistoryDealGetDouble(ticket,DEAL_COMMISSION);
         if(HistoryDealGetInteger(ticket,DEAL_TYPE)!=DEAL_TYPE_BALANCE)
           {
            DayProfit+=(profit+commission);
           }
        }
     }
   return (DayProfit);
  }
//+------------------------------------------------------------------+

Puoi dirmi come usare la funzione

HistorySelect (datetime from_date,datetime to_date)
per specificare il periodo a partire dal giorno corrente. È chiaro che la fine del periodo to_date=TimeCurrent(), come specificare correttamente l'inizio del periodo from_date, in modo che inizi esattamente da 00h:00m:00c del giorno corrente?
 
altec3:
Buon pomeriggio, potreste dirmi come specificare il periodo a partire dal giorno corrente nella funzione. È chiaro che la fine del periodo to_date=TimeCurrent(), come specificare correttamente l'inizio del periodo from_date, così inizierà da 00h:00m:00 del giorno corrente?

Supponendo che ci sia stato almeno un tick oggi, l'algoritmo è il seguente: l'ora corrente viene inviata alla strutturaMqlDateTime. Quindi impostare le ore, i minuti e i secondi a zero in questa struttura. Resta da convertire la struttura modificata in un tempo:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlDateTime STimeCurrent;
   TimeToStruct(TimeCurrent(),STimeCurrent);
   STimeCurrent.hour=0;
   STimeCurrent.min=0;
   STimeCurrent.sec=0;
   datetime start_day=StructToTime(STimeCurrent);
   Print(start_day);
  }
//+------------------------------------------------------------------+


Risultato:

2020.09.03 00:00:00
File:
1.mq5  3 kb