Qui abbiamo bisogno di piazzare ordini pendenti e calcolare i loro prezzi rispetto al prezzo di chiusura della barra precedente. BUYSTOP viene piazzato, mentre SELLSTOP restituisce l'errore 130. C'è un errore in questo codice? O in un'altra funzione.
Qui abbiamo bisogno di piazzare ordini pendenti e calcolare i loro prezzi rispetto al prezzo di chiusura della barra precedente. BUYSTOP viene piazzato, mentre SELLSTOP restituisce l'errore 130. C'è un errore in questo codice? O in un'altra funzione.
void SetOrders() {
double ldStop=0, ldTake=0;
int spr=MarketInfo(Symbol(), MODE_SPREAD);
double PredBar=iClose(NULL,PERIOD_M5,1);
double pAsk=PredBar+(DistanceSet+spr)*Point;
double pBid=PredBar-(DistanceSet+spr)*Point;
if (!ExistOrder(1)) {
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake, 1);
}
if (!ExistOrder(2)) {
if (StopLoss!=0) ldStop=PredBar+(StopLoss*Point);
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake, 2);
}
}
Perché non si rivolge all'autore? È ancora vivo e giovane, non vecchio! Le coordinate sono nel codice sopra ogni funzione! Tutti lo conoscono e lo rispettano!
E impara come inserire il codice come questo, con SRC!
void SetOrders() {
double ldStop=0, ldTake=0;
int spr=MarketInfo(Symbol(), MODE_SPREAD);
double PredBar=iClose(NULL,PERIOD_M5,1);
double pAsk=PredBar+(DistanceSet+spr)*Point;
double pBid=PredBar-(DistanceSet+spr)*Point;
if (!ExistOrder(1)) {
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake, 1);
}
if (!ExistOrder(2)) {
if (StopLoss!=0) ldStop=PredBar+(StopLoss*Point);
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake, 2);
}
}
Hai pasticciato con PredBar senza capirlo, e questo è il risultato! Impara prima la matematica!
Buona sera, per favore consigliate come risolvere il problema dell'indicatore che non funziona sulla nuova build. Quando si compila dà errore 'TotalOrders' - tipo di espressione switch illegale (l'errore è evidenziato nel codice ). Saluti, alexander.
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if ((OrderSymbol()==Symb) && (OrderType()==op))
{
ko++;
TotalOrders[ChartListPosition+1][ko][1]=NormalizeDouble(OrderOpenPrice(),dig);
TotalOrders[ChartListPosition+1][ko][2]=NormalizeDouble(OrderStopLoss(),dig);
TotalOrders[ChartListPosition+1][ko][3]=NormalizeDouble(OrderTakeProfit(),dig);
TotalOrders[ChartListPosition+1][ko][4]=OrderTicket();
TotalOrders[ChartListPosition+1][ko][5]=OrderLots();
TotalOrders[ChartListPosition+1][ko][6]=OrderType();
TotalOrders[ChartListPosition+1][ko][7]=OrderMagicNumber();
TotalOrders[ChartListPosition+1][0][0]=ko;
switch(TotalOrders[ChartListPosition+1][ko][6])
{
case OP_BUY:
Type="Buy";
break;
case OP_BUYSTOP:
Type="Buy Stop";
for(int j=1;j<=OrdersCount;j++)
{
switch(TotalOrders[ChartsListPosition+1][j][6])
{
case OP_SELL:
if (TotalOrders[ChartsListPosition+1][j][2]!=0 &&
ask>=(TotalOrders[ChartsListPosition+1][j][2]-NormalizeDouble(StopLevel*point,dig)))
{
test=StopLossColor;
}
else
{
if (TotalOrders[ChartsListPosition+1][j][3]!=0 &&
ask<=(TotalOrders[ChartsListPosition+1][j][3]+NormalizeDouble(StopLevel*point,dig)))
{
test=TakeProfitColor;
}
}
break;
karwin: Buona sera, potreste dirmi come risolvere il problema dell'indicatore che non funziona nella nuova build. Quando si compila dà errore 'TotalOrders' - tipo di espressione switch illegale (l'errore è evidenziato nel codice). Saluti, alexander.
La variabile dovrebbe essere lì, non qualcos'altro:
int Переменная=TotalOrders[ChartListPosition+1][ko][6];
switch(Переменная)
{
case OP_BUY:
Type="Buy";
break;
case OP_BUYSTOP:
Type="Buy Stop";
Potete consigliarmi, non ho molta dimestichezza con MT5, non l'ho quasi mai usato, durante i test solo un core della CPU è impegnato, ne ho 8, come mai? Come posso rimediare?
Potete consigliarmi, non ho molta dimestichezza con MT5, non l'ho quasi mai usato, durante i test solo un core della CPU è impegnato, ne ho 8, come mai? Come posso rimediare?
Potete consigliarmi, non ho molta dimestichezza con MT5, non l'ho quasi mai usato, durante i test solo un core della CPU è impegnato, ne ho 8, come mai? Come posso rimediare?
È così per i test o per l'ottimizzazione? Se si sta solo testando - un solo core funziona, ma se si abilita l'opzione "Optimize" nel tester di strategia, tutti i core del processore funzioneranno.
"Non sono un utente di MT5 e presto il sito web sarà affumicato, non mi ci siedo affatto e ho fatto la domanda qui.
barabashkakvn: È durante i test o l'ottimizzazione? Se fate solo dei test - un solo core funziona, ma quando attivate l'opzione "Optimize" nel tester delle strategie, verranno eseguiti tutti i core del processore.
Ho capito tutto, grazie a tutti. Durante il test un nucleo funziona e tutto funziona come dovrebbe,
Non riesco a capire perché non abbiano usato tutta la potenza del processore nel test.
"Non sono un membro del sito, ecco perché ho fatto la domanda qui.
Ho capito tutto, grazie a tutti. Durante il test un nucleo funziona e tutto funziona come dovrebbe,
Non riesco a capire perché non usano tutta la potenza del processore nei test.
E perché dovremmo caricare tutti i core durante i test (senza ottimizzazione attivata)? Dopo tutto, se il test con la visualizzazione, non c'è fretta, e se il test senza visualizzazione - così i computer moderni eseguire questo compito come semi di girasole su un singolo core.
Qui abbiamo bisogno di piazzare ordini pendenti e calcolare i loro prezzi rispetto al prezzo di chiusura della barra precedente. BUYSTOP viene piazzato, mentre SELLSTOP restituisce l'errore 130. C'è un errore in questo codice? O in un'altra funzione.
void SetOrders() {
Qui abbiamo bisogno di piazzare ordini pendenti e calcolare i loro prezzi rispetto al prezzo di chiusura della barra precedente. BUYSTOP viene piazzato, mentre SELLSTOP restituisce l'errore 130. C'è un errore in questo codice? O in un'altra funzione.
Perché non si rivolge all'autore? È ancora vivo e giovane, non vecchio! Le coordinate sono nel codice sopra ogni funzione! Tutti lo conoscono e lo rispettano!
E impara come inserire il codice come questo, con SRC!
Hai pasticciato con PredBar senza capirlo, e questo è il risultato! Impara prima la matematica!
Buona sera, potreste dirmi come risolvere il problema dell'indicatore che non funziona nella nuova build. Quando si compila dà errore 'TotalOrders' - tipo di espressione switch illegale (l'errore è evidenziato nel codice). Saluti, alexander.
La variabile dovrebbe essere lì, non qualcos'altro:
Ciao compagni.
Potete consigliarmi, non ho molta dimestichezza con MT5, non l'ho quasi mai usato, durante i test solo un core della CPU è impegnato, ne ho 8, come mai? Come posso rimediare?
Ciao compagni.
Potete consigliarmi, non ho molta dimestichezza con MT5, non l'ho quasi mai usato, durante i test solo un core della CPU è impegnato, ne ho 8, come mai? Come posso rimediare?
Ciao compagni.
Potete consigliarmi, non ho molta dimestichezza con MT5, non l'ho quasi mai usato, durante i test solo un core della CPU è impegnato, ne ho 8, come mai? Come posso rimediare?
Hai pasticciato con PredBar senza capire, questo è il risultato! Impara prima la matematica!
dovresti chiederlo sul quinto forum
"Non sono un utente di MT5 e presto il sito web sarà affumicato, non mi ci siedo affatto e ho fatto la domanda qui.
È durante i test o l'ottimizzazione? Se fate solo dei test - un solo core funziona, ma quando attivate l'opzione "Optimize" nel tester delle strategie, verranno eseguiti tutti i core del processore.
Ho capito tutto, grazie a tutti. Durante il test un nucleo funziona e tutto funziona come dovrebbe,
Non riesco a capire perché non abbiano usato tutta la potenza del processore nel test.
"Non sono un membro del sito, ecco perché ho fatto la domanda qui.
Ho capito tutto, grazie a tutti. Durante il test un nucleo funziona e tutto funziona come dovrebbe,
Non riesco a capire perché non usano tutta la potenza del processore nei test.