[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 135

 

Ciao, ho preso lo script dal tutorial di S. Kovalev come base. Voglio fare un Expert Advisor per aprire un trade, mettere uno stop loss, prendere profitto, e poi aspettare che il trade si chiuda (cioè lo stop loss o il profitto), e solo allora riaprire il trade. Ho provato con le interruzioni di ciclo e ciclo. Per favore, consigliate come fare questo. Ho pensato che potrebbe essere più facile non impostare stop-loss e take-profit contemporaneamente, e che il prezzo si chiuda quando si avvicina a un certo livello. Ma non voglio farlo in questo modo perché ho paura dello slippage, e ogni punto è importante per me. Se provo ad aprire un affare o un paio in una volta, non posso aprirne un altro.

//+------------------------------------------------------------------+
int start() //---- funzione start
{
double //---- dichiarare le variabili
x,
y;
//+------------------------------------------------------------------+
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //---- ordine a mercato per comprare e mettere uno stop e profitto a 15 punti dal prezzo di apertura
//+------------------------------------------------------------------+
while(x!=Ask-15*Point||y!=Chiedi+15*Punto) //---- della condizione voglio che il commercio sia chiuso fino a quando il commercio precedente è chiuso, cioèе. è possibile
{//----- tenere aperto un solo trade
continuare;//---- interrompere la condizione e passare al passo successivo
}
//+------------------------------------------------------------------+
return;//---- funzione return
}
//+------------------------------------------------------------------+

 
YOUNGA:

Sì, solo i prezzi aperti, ecco perché è importante considerarlo quando si analizza l'EA. Per esempio, se la coda di una candela rompe il tuo canale, l'EA potrebbe non vederlo, ma puoi cambiare la logica del programma e risolvere il problema.



Grazie!
 

D: Ecco un pezzo di codice

int init()

{
//----
ShiftSignal=0;
SlowPer=FastPer+AddSlow;
Spread=MarketInfo(Symbol(),MODE_SPREAD);
Comment("ExpertMagicNumber=",ExpertMagicNumber);

if ((FastShift<0)&&(SlowShift>=0))
ShiftSignal=FastShift;

if ((FastShift>=0)&&(SlowShift<0))
ShiftSignal=-SlowShift;

if ((FastShift<0)&&(SlowShift<0))
{
if (MathAbs(FastShift)>MathAbs(SlowShift))

ShiftSignal=-FastShift;
else
ShiftSignal=-SlowShift;
}
//----
return(0)

Sono interessato a questo frammento

se ((FastShift<0)&&(SlowShift>=0))

ShiftSignal=FastShift;

se FastShift<0, significa che il valore FastShift è inizialmente uguale a un numero intero negativo, per esempio: -2

poi nella prossima linea ShiftSignal=FastShift;

si potrebbe pensare che il valore -2 venga assegnato alla variabile ShiftSignal invece di zero

ma allo stesso tempo ci si può chiedere perché c'è un meno davanti alla variabile FastShift

Perché in matematica, meno per meno è più, cioè il valore sarà "+2", cioè solo 2.

Se avete bisogno, posso mandarvi tutto il codice.

 

Aiutami a risolvere un problema come questo.

C'è un segnale di acquisto o di vendita, ma anche la barra successiva soddisfa la condizione in quanto il segnale sulla barra successiva non viene considerato.

Come faccio, ma non funziona.

if( условие на покупку или продажу)
{          

      if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==true)   // если есть уже ордер то проверяем
        {
                 if (OrderOpenTime()!=Time[1]||OrderOpenTime()!=Time[2]||OrderOpenTime()!=Time[3]) // если открытый ордер имеет значение(OrderOpenTime) не равное времени бару назад и тд. до 3 баров.
                    {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),2,0,0,"ntcn",Magic,0,Blue);  // тогда открываем
                    }
        }


}

Ma non funziona...o come può essere fatto diversamente???? Vi sarei grato se poteste condividere le vostre conoscenze.

Se qualcuno sta leggendo e ha affrontato lo stesso problema, ecco la risposta:

if( условие на покупку или продажу)
{          

   OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);                                                // проверяем последний ордер
        if(OrderOpenTime()<Time[3])                                                                       // если по времени прошло 3 бара тогда можно открывать новую сделку
           {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,"ntcn",Magic,0,Red); 
           }

}
 
Oleg, la condizione non è molto rigorosa Per esempio, iniziare a contare gli ordini aperti, se più di 1 allora non aprire (prendere funzioni pronte sul sito qui)
 

Visto che nessuno ha risposto, cercherò di riformulare la mia domanda.

C'è un modo per estrarre informazioni dall'indicatore compilato, se la funzione iCastom() dà solo zeri?

 

Ciao, consigliare come iniziare il conteggio delle barre, dopo un segnale positivo dell'indicatore

- Ricevo un segnale, baia aperta, solo dopo che le 2 barre successive salgono.

 
YOUNGA:
Oleg, la condizione non è molto rigorosa ad esempio inizia a contare gli ordini aperti, se più di 1 non si apre (usa le funzioni pronte all'uso su questo sito)


Purtroppo i segnali possono anche essere ripetuti (nel senso di comprare di più, possono essere un'ora dopo, un giorno dopo, ecc.) Sono passato attraverso OrderComment, bloccando, ma ci sono anche ordini ripetuti. Vorrei bloccare sulle barre i segnali ripetuti. Se attraverso Sleepage, i tempi sono diversi e 4 ore....

Se non sai cosa farci, avrai una risposta sbagliata.

 
dertop:


Purtroppo i segnali possono anche essere ripetitivi (nel senso di extra, possono essere un'ora dopo, un giorno dopo, ecc. Vorrei bloccare sulle barre i segnali ripetuti. Se attraverso Sleepage, i tempi sono diversi e 4 ore....

Ma grazie per la risposta.


Cerca il sito web della filiale

Vietare il commercio in un bar.

 
Buona notte! Per favore, spiegate il principio dell'indicatore zigzag. Per esempio, i frattali sono costruiti quando le 2 barre di sinistra e di destra sono sopra o sotto quella corrente. Qual è la base dell'indicatore zigzag? Per favore.