[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 892
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
Ciao! Non riesco a capire cosa c'è di sbagliato in ???? Non modifica gli ordini a mercato
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // calcola lo stop per le posizioni di acquisto//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); // calcola il profitto per le posizioni di acquisto//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) // calcolo dello stop per le posizioni di vendita//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);
//================================================== ==================//
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}}
if ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET)
Alert("order is", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());
}}}}
return(0);}
QUAL È IL PROBLEMA PER FAVORE AIUTATE ...........?????
Qualsiasi domanda del nuovo arrivato, per non ingombrare il forum. Non lasciatevi sfuggire i professionisti. Non è da nessuna parte senza di te.
Qualsiasi domanda da principiante, per non ingombrare il forum. Non lasciatevi sfuggire i professionisti. Non è da nessuna parte senza di te.
Scusate, non capisco quale sia il problema. Penso di non aver mai soddisfatto la condizione while, perché se metto Comment all'interno del ciclo, non si riflette. Inoltre sopra il ciclo ho la variabile B uguale al normale valore atteso, come 0.0011, ma se la moltiplico per Point, viene fuori 0!!!!
int start()
{
double A,B,C ;A=Close[1];B=Close[Bars];
C=A-B ;Comment("Value of differencei ", B*Point);
while (B*Point >Swing)
{ Comment("Valore della differenza ", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
Alert("Value ", B);
Comment("Value differencei ",B);
//----
//----
return(0);
}
Non sono sicuro, ma il modo corretto sarebbe
int start()
{
double A,B,C ;A=Close[1];B=Close[bars]; Cosa significa Close[bars]; ???? Chiudi[sequenza di numeri di barre all'indietro, senza corrente]
chiusura della candela precedente[1]. chiusura della candela precedente[2]
B=(A-B)*Point ; Comment("Value of difference ", B); B sarà uguale alla chiusura della candela precedente meno la chiusura della candela che avete impostato in B= close [....]
mentre (B > B) e molto probabilmente non mentre a se la condizione
{ Commento("Differenza di valore ", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green);
}
while (0-B<Round) e molto probabilmente non mentre una condizione if
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
}
Alert("Value ",B);
Comment("Value differencei ",B);
//----
//----
return(0);
}
Potrebbe essere sbagliato.....
Ci sono molti errori nel tuo codice ...... cosa vuoi fare, quale risultato? Non ci dovrebbero essere lettere russe...
Non puoi avere C nel foglio di calcolo perché C ha un numero in memoria come 1,23456
0-B sarebbe un numero negativo....
ed è meglio calcolare il profitto e la perdita come segue
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // calcola lo stop per le posizioni di acquisto//
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); // calcola il profitto per le posizioni di acquisto//
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits) // calcola lo stop per le posizioni di vendita//
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits); // calcola il profitto per le posizioni di vendita//
Scusate, non capisco quale sia il problema. Penso di non aver mai soddisfatto la condizione while, perché se metto Comment all'interno del ciclo, non si riflette. Inoltre sopra il ciclo ho la variabile B uguale al normale valore atteso, come 0.0011, ma se la moltiplico per Point, viene fuori 0!!!!
int start()
{
double A,B,C ;A=Close[1];B=Close[Bars];
C=A-B ;Comment("Value of differencei ", B*Point);
while (B*Point >Swing)
{ Comment("Valore della differenza ", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);}
while (0-B*Point<Point)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
Alert("Value ", B);
Comment("Value differencei ",B);
//----
//----
return(0);
}
E lei corteggia che bisogna moltiplicare la differenza tra A e B per Punto?
I valori di A e B sono numeri reali. Moltiplicando la loro differenza per Punto, si aumenta ulteriormente il numero di cifre decimali. Se avete bisogno di ottenere un intero da confrontare con un intero "Spread", dovreste piuttosto dividere per Punto.