[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 341
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
I parametri di indicazione salvati sono "inseriti" negli indicatori una volta durante l'inizializzazione del modello, poi "diventano completamente indipendenti"/.
Tutti i parametri dell'indicatore modificati sono salvati nel modello, se avete cambiato i parametri dell'indicatore, salvate nuovamente il modello.
>> Grazie!
mazepa 08.12.2009 17:42
RISPOSTA: sul CODICE!
Se ho capito l'algoritmo, allora all'ora stabilita apriamo buy (sell), se il prezzo è passato >10 pips nell'altra direzione, allora chiudiamo l'ordine e ci posizioniamo nella direzione opposta.
Per la chiusura, sto usando la mia funzione universale.
//funzione per chiudere tutti gli ordini di mercato in--------------------------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //crossing di tutti gli ordini per tutte le valute
{
if (OrderSelect(i,SELECT_BY_POS)==true) //se l'ordine è selezionato con successo
{
if (OrderSymbol()!=Symbol()) continua; //se l'ordine è nella valuta sbagliata, continua la ricerca
{
switch(OrderType()) //nell'ordine richiesto, determina il tipo (Bue_Sell) e lo chiude
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
case 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
return;
}
Quindi ora prima di aprire nella direzione opposta basta scrivere _CloseAllOrder()
Amici, sto solo imparando. Per favore non guardate il contenuto del programma, ma aiutatemi a trovare un bug nel programma:
int start()
{
switch(CurrentState)
{
case STATE_SHORT:
MyOrderTicket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 1, 0, 0,NULL, 1, 0, Red);
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if (OrderModify(OrderTicket(),OrderOpenPrice(),Bid+90*Point,Bid-Profit1*Point,0,Green)==true)
{CurrentState=STATE_1;
break;
}
case STATE_1:
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if(Ask <= OrderTakeProfit())
{CurrentState=STATE_SHORT;
break;
}
if(Bid >= (OrderOpenPrice()+Profit1*Point)
{CurrentState=STATE_SHORT;
break;
}
}
//----
return(0);
}
L'errore è il seguente: \ fine del programma" - parentesi sinistra sbilanciata. Dov'è l'errore?
Amici, sto solo imparando. Per favore non guardate il contenuto del programma, ma aiutatemi a trovare un bug nel programma:
Capito:
bisogno:
Come dichiarare un array unidimensionale senza applicare un record a ogni cella di memoria (è possibile)
ma da una sequenza unidimensionale
o la sequenza unidimensionale è solo per le costanti numeriche e logiche!!!?
Capito:
>> dobbiamo farlo:
Grazie, amico!
Un'altra domanda. Se (OrdiniTotali()==0) questo... se il numero di ordini aperti è uguale a zero... allora come sarà... se il numero di ordini aperti PER IL GIORNO è uguale a zero.
Non c'è qualcosa come OrdersDayTotal?
no, ma possiamo sempre scrivere la nostra funzione)
Conta gli ordini Compra e Vendi, per un dato simbolo, aperti oggi. Nessun ordine in sospeso.
if(OrdersDayTotal(Symbol())==0) {...}
qualcosa del genere)
mazepa 08.12.2009 17:42
RISPOSTA: Su COD!
Se ho capito l'algoritmo, apriamo l'acquisto (vendita) all'ora stabilita, se il prezzo passa >10 pip nell'altra direzione, chiudiamo l'ordine e ci spostiamo sul lato opposto.
Per la chiusura uso la mia funzione universale.
//Funzione per chiudere tutti gli ordini a mercato in finestra--------------------------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //cullare tutti gli ordini per tutte le valute
{
if (OrderSelect(i,SELECT_BY_POS)==true) //se l'ordine è selezionato con successo
{
if (OrderSymbol()!=Symbol()) continue; //se l'ordine è nella valuta sbagliata, continua la ricerca
{
switch(OrderType()) //quando l'ordine richiesto è inviato, definire il suo tipo (Bue_Sell) e chiuderlo
{
caso 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
caso 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
ritorno;
}
Quindi ora basta scrivere _CloseAllOrder() prima di aprire nella direzione opposta
La funzione è la bomba mi ha preso un paio di pagine, grazie mille.mazepa 08.12.2009 17:42
RISPOSTA: Su COD!
Se ho capito l'algoritmo, apriamo l'acquisto (vendita) all'ora stabilita, se il prezzo si è mosso >10 pip nell'altra direzione, chiudiamo l'ordine e ci muoviamo nella direzione opposta.
Per la chiusura uso la mia funzione universale.
//Funzione per chiudere tutti gli ordini a mercato in finestra--------------------------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //cullare tutti gli ordini per tutte le valute
{
if (OrderSelect(i,SELECT_BY_POS)==true) //se l'ordine è selezionato con successo
{
if (OrderSymbol()!=Symbol()) continue; //se l'ordine è nella valuta sbagliata, continua la ricerca
{
switch(OrderType()) //quando l'ordine richiesto è inviato, definire il suo tipo (Bue_Sell) e chiuderlo
{
caso 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
caso 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
ritorno;
}
Quindi ora basta scrivere _CloseAllOrder() prima di aprire nella direzione opposta
La funzione è la bomba mi ha preso un paio di pagine, grazie mille.