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

 

Sembra che qualcosa non funzioni. PER FAVORE AIUTATEMI.

L'idea è questa: se la candela è maggiore di un certo valore, allora proibisci ulteriori scambi.

bool Trade=true;

//---------- inizio()

{.......

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen(); //--------open order if (no order is open) AND (candlestick is not bigger than)

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==-1) Trade=false; //--------- impostare Tradesu false purché (nessun ordine aperto) E (la candela è maggiore di)

......}

//------- Il commercio è usato nella funzione CheckForOpen().

void CheckForOpen() //------------------- controllare le condizioni e l'ordine di apertura

{int res;

if( Trade && A()==-1 && B()==-1) //------- controllare le condizioni di apertura

{ res=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,Ask+SL*Point,Bid-TP*Point,"",MAGICMA,0,Red); //--------- se la condizione è soddisfatta, l'ordine è aperto

trade=false; } //--------Trade è assegnato un valore di trade-ban. E qui funziona. Se l'ordine si chiude al take order, allora aspetta che arrivino le nuove condizioni definitive, anche se quelle vecchie sono ancora in vigore (prima, il consulente apriva ordini continuamente)

.........}

//-------------------------- controllare l'altezza della candela

int CheckVolume()

{ double volume=High[1]-Low[1]; //-------misurare l'altezza della candela

if (volume <= CandleVolume*Point) return (1); //---------- se la candela è inferiore a

se (volume > CandleVolume*Point) return (-1);//------------se la candela è più di

return(0);}

Ho provato anche la versione, ma non ha funzionato:

void start()

{ .....

if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen();

.....}

.....

int CheckVolume()

{ double volume=High[1]-Low[1]; //-------misura dell'altezza della candela

if (volume <= CandleVolume*Point) return (1); //---------- se la candela è inferiore a

if (volume > CandleVolume*Point) {Trade=false; return (-1);}//------------se la candela è superiore a

return(0);}

 
dzhini:

Non c'è modo che funzioni.


Forse dovremmo fare prima un indicatore
 
Vinin:

Forse dovremmo prima fare un indicatore
e non c'è modo di farlo senza?
 

Aiutatemi! Come faccio a far apparire una stampa una volta sola, ma ad ogni spunta ho un calo di stampa.



while(OrdersTotal() != 0 && OrderSelect(index, SELECT_BY_POS, MODE_TRADES)){
    if(OrderType() == OP_BUY)
     {
       Print ("-------   ",OrderSymbol()," "," BUY ",OrderLots()," trade was opened at ", OrderOpenPrice(),"; Stop loss:", OrderStopLoss(),
          "; Take profit:", OrderTakeProfit(), "; Ticket:", OrderTicket(),"; Open time:", OrderOpenTime());
                       return(0);
                }
    if(OrderType() == OP_SELL)
      {
       Print ("-------   ",OrderSymbol()," "," SELL ",OrderLots()," trade was opened at ", OrderOpenPrice(),"; Stop loss:", OrderStopLoss(),
          "; Take profit:", OrderTakeProfit(), "; Ticket:", OrderTicket(),"; Open time:", OrderOpenTime());
                      
       }
index++;
 
itum:

Aiutatemi! Come faccio a far apparire una stampa una volta sola, ma ad ogni spunta ho un calo di stampa.


Emettere questa stampa al momento dell'apertura dell'ordine.
 
sergeev:
emette questa stampa quando l'ordine viene aperto.


Ho bisogno di produrre informazioni sugli ordini che sono già stati aperti manualmente o da un altro EA.

 
itum:


Ho bisogno di visualizzare informazioni sugli ordini esistenti che sono già stati aperti manualmente o da un altro EA.

Poi visualizzateli in un commento sullo schermo. Commento
 

Cos'è questo errore? Se invio una mail di prova dal terminale ottengo un errore

- 2010.12.28 18:23:55 Posta: 530 5.7.0 Deve prima emettere un comando STARTTLS. y1sm3265289fak.15

 
dzhini:
e non c'è modo di farlo senza?

È possibile, naturalmente, ma l'indicatore rende facile controllare visivamente l'algoritmo
 
itum:


Ho bisogno di visualizzare informazioni sugli ordini esistenti che sono già stati aperti manualmente o da un altro EA.


In alternativa, possiamo fare un contatore di stampe. Dichiariamo una variabile intera. Poi controlliamo se non ci sono ordini, lo impostiamo a zero. Poi controlliamo se la variabile è uguale a zero e ci sono ordini nel mercato, quindi stampiamo i dati degli ordini e incrementiamo questa variabile di 1. Non appena gli ordini vengono chiusi, la variabile sarà di nuovo azzerata. Questo significa che il codice aspetterà che appaia almeno un ordine e mostrerà le informazioni su di esso nel registro.