Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1735

 
anrei2002 #:

La parola chiave è AIUTO!

Come ho già scritto: è meglio che mi diciate subito che questo indicatore non può essere finalizzato su questo forum!

E questo è tutto...e capirò.... perché sono state versate così tante scorie?

L'ho scritto io per primo.

non si può aggiustare, è storto...

Questa è stata la prima cosa che ho scritto. Non l'hai visto, non l'hai capito, hai pensato che fosse una stronzata.

Il fatto che consideriate il mio tentativo di trasmettervi come spazzatura che avete fomentato qui - non mi offendo, non ho cercato per il vostro bene, qualcun altro lo leggerà e non farà errori. Per quanto riguarda te, buona fortuna con il tuo indicatore, cerca altri forum se non ti piace questo.

 
Nikolay Ivanov #:

Ho scritto subito.

Non c'è modo di ripararlo, è storto...

può essere corretto, ma ridisegnerà le 8 barre più esterne.

 
anrei2002 #:

La parola chiave è AIUTO!

Ti ho aiutato - ho scritto quello che dovevi fare - e?)

cosa hai fatto?

 
Taras Slobodyanik #:

Può essere corretto, ma ridisegnerà le 8 barre più esterne.

È stato anche detto che il segnale può essere applicato immediatamente alla nona barra e non ci sarà nessun ridisegno.

Taras Slobodyanik#:

ti ho aiutato - ho scritto quello che devi fare - e?)

cosa hai fatto?

a proposito, si otterrebbe (con una certa probabilità) di arbitraggio, è necessario concordare in anticipo su tutto ciò che ha bisogno di fare.

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Nikolay Ivanov #:

È stato anche detto che si può mandare un segnale alla nona barra e non ci sarà nessun sovrapprezzo... ma l'uomo non capisce...

a proposito, si arriverebbe all'arbitraggio, bisogna negoziare tutto in anticipo... ciò di cui ha bisogno non può essere fatto senza riserve

Tutto è possibile qui, l'uomo è d'accordo con gli override e segnala 8 barre indietro, qual è il problema?

ps. divergenze e frattali appaiono anche nel passato, niente di che.
 
Taras Slobodyanik #:

Tutto può essere fatto qui, la persona è d'accordo con il re-rating e i segnali 8 barre indietro, qual è il problema?

Ha bisogno di rimuovere "solo" le frecce extra e questo è tutto. E come farlo, rivalutare o no, è un problema vostro... È così che inizia qualsiasi arbitrato :)

Dipende da come si formulano i termini di riferimento, ma in ogni caso - non rischierei... Anche un arbitrato riuscito è mesi di stress...

 
anrei2002 #:

La parola chiave è AIUTO!

Come ho già scritto: è meglio che mi diciate subito che questo indicatore non può essere finalizzato su questo forum!

E questo è tutto... e capirò.... perché sono state versate così tante scorie?

Esattamente. Se tu aiuti a farlo, significa che lo fai tu, e qualcuno ti aiuta per quanto puoi e per quanto puoi e per quanto puoi.

Se tutto quello che fai è chiedere, senza fare altro, e qualcuno lo fa per te, allora è un ufficio di buona volontà.

Quando ho creato questo thread, intendevo un aiuto, non la produzione di desideri gratuiti.

 

Ciao Cari utenti del forum e programmatori esperti! Ho bisogno di aiuto per finalizzare l'Expert Advisor)) Si prega di consigliare come aggiungere 2 cose al consulente del codice:

1. Ecco la situazione: apro un ordine (1°) con TP e SL e un certo lotto (probabilmente 0,01). Se questo ordine si chiude al take profit - bene, non cambia nulla. Ma se questo (1°) ordine viene chiuso a SL, l'ordine immediatamente successivo (2°) viene aperto con un lotto 2 volte maggiore (0,01*2=0,02). Se questo 2° ordine viene chiuso a Take Profit, allora l'ordine successivo (3° ordine) viene aperto con un lotto regolare, cioè, un lotto 2 volte più grande è necessario solo per l'ordine successivo (2° ordine) dopo che il precedente (1°) è stato chiuso a SL. Se il 3° ordine sarà chiuso in SL per la seconda volta di seguito, il lotto rimarrà aumentato di 2x fino a quando non ci sarà nessuna chiusura in TP. Spero di aver descritto in dettaglio la logica di ciò che deve essere aggiunto;


2. e la seconda cosa che dobbiamo aggiungere è il movimento SL. ora lo spiego con un esempio: supponiamo di avere un ordine con parametri di base T.p. + 300, S.l. - 500. Il prezzo si muove nella direzione richiesta e passa +100 pip dal prezzo di apertura dell'ordine. Una volta che il prezzo raggiunge +100 dal prezzo di apertura dell'ordine, lo SL dovrebbe muoversi dalla base -500 a +90. Cioè quando il prezzo raggiunge +100 pip dal prezzo di apertura dell'ordine, trasferiamo l'ordine a Breakeven impostando S,L a +90 pip. Dopo di che, se il prezzo si muove ulteriormente nella direzione desiderata e passa di altri + 50 pip - S.L. è spostato di 50 pip => ora dovrebbe essere a + 140 pip dal prezzo di apertura dell'ordine. Cioè l'S.L. si muove prima dalla sua posizione base a + 90 pip dal prezzo di apertura dell'ordine e poi si muove se passa per + 50 pip ( - 500 => + 90 => + 140 => + 190 ecc.). E così via fino a quando il prezzo non raggiunge il T.P. o quando la tendenza si inverte e colpisce la S.L.


Spero di aver descritto tutto in dettaglio, e spero davvero nel vostro aiuto, perché aggiungendo questi elementi mancanti, l'Expert Advisor sarà pronto)) Se avete domande, chiedete pure))) Sto incollando una parte del codice dell'Expert Advisor qui sotto:

extern string s1                = "Main options";
extern string Symbol            = "";     
extern int timeframe            = 30;     
extern int MagicNumber          = 122122; 
//+------------------------------------------------------------------+
extern string s2                = "Trading options";
extern int BarsForConfirm       = 40;     
extern double Lot               = 0.01;      // размер лота: 0 - авт.расчет (свободная маржа/9000 => 100/5000=0.02 лота); любое другое число - фиксированный лот
extern int StopLoss             = 50;     // стоплосс (в пунктах)
extern int TakeProfit           = 30;     // тейкпрофит (в пунктах)
//+------------------------------------------------------------------+

bool OrderBuy = true, OrderSell = true, Trade = false;  
int timeprev = 0, Slip = 3.0, Start, cnt=1, a;  
datetime newbar=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(CheckForOpen()==0) {a=1; Trade = false;}
   else
   if(CheckForOpen()==1) {a=0; Trade = false;}
   else {Trade = true;}
   if (Digits == 3 || Digits == 5) // Пересчет для 5-ти знаков, работает автоматически
     {                                                    
      TakeProfit *= 10;
      StopLoss *=10;
      Slip *=10;
     } 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  
  {
  
   if(CheckForOpen()==a) Trade = true;
   if(newbar!=Time[0] && Trade==true)  
     {
      if(CheckForOpen()!=Start)        
        {Start=CheckForOpen(); cnt=1;}
      else {cnt+=1;}

      if(cnt==BarsForConfirm) {        
             
                
             
         if(CheckForOpen()==0)         
           {
            if(OrderSend(Symbol(),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue))
              {Print("BUY OK");} else {Print(GetLastError());}
           } 
         if(CheckForOpen()==1)         
           {
            if(OrderSend(Symbol(),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red))
              {Print("SELL OK");} else {Print(GetLastError());}
           }
        }   
      newbar=Time[0];  //открытие ордера на цене открытия свечи
     }
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lots()  // Расчет объема лота
  {
   double Lots;
   if(Lot>0) return(Lot);           
   Lots=AccountFreeMargin()/9000;  // раcчёт лота - свободная маржа/9000 => 100/9000=0.01 лота 
   Lots=MathMin(15,MathMax(0.01,Lots));
   if(Lots<0.1) Lots=NormalizeDouble(Lots,2);
   else 
     {
      if(Lots<1) Lots=NormalizeDouble(Lots,1);
      else       Lots=NormalizeDouble(Lots,0);
     }
   return(Lots);
  }
//+------------------------------------------------------------------+
 
MakarFX #:

Cattura

Grazie mille. Scusa se non ho risposto subito - mi sono distratto.
Provato, ho notato un piccolo problema...
Disegna solo se lo eseguo sul simbolo USDX.
Non appare su EURUSD (è chiaro che sto cambiando Symbol_2).
Vedere le immagini, può essere più facile da capire.
Qualche idea sul perché sia così e su come risolverlo?
File:
EURUSD.JPG  260 kb
USDX.JPG  318 kb
 

Salve.

Scusa per la domanda stupida... L'ordine è ora piazzato correttamente e poi l'errore 129 - prezzo sbagliato. Sta diventando una spina nel fianco... Aiutami... ((


int f = OrderSend(para_2,OP_BUY,0.1,Ask_para_2,3,0,0,"",0,Blue); if(f < 0){Alert("Error setting Buy Stop order: ", GetLastError());}

Motivazione: