Non pensavo di incontrare un tale problema, perché a prima vista dovrebbe essere una cosa ovvia ridisegnare il grafico dal programma. In questa luce, lo scopo della funzione ChartRedraw() non è chiaro...
Non è per gli indicatori, ma per visualizzare le modifiche apportate alle proprietà degli oggetti grafici.
È necessario inviare un tick all'indicatore - poi l'indicatore sarà ridisegnato. Bene, cioè farà quello che dovrebbe fare sul nuovo tick.
E per inviare un nuovo tick, è necessario o aspettare per esso, che non è un'opzione, o aggiornare il grafico da PCM --> Refresh, che non è anche un'opzione, o utilizzare la funzione ChartSetSymbolPeriod() con tali parametri per il grafico corrente:
Меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд. Возвращает true в случае удачного помещения команды в очередь графика, иначе false. Чтобы...
Salve, aiutatemi, ho scritto uno script che apre un ordine limite ma a prezzo di mercato. Tutto funziona, ho deciso di cambiarlo per mettere un limite sotto/sopra il mercato, niente funziona, anche se il codice di ritorno del server di trading 10009, e GetLastError() restituisce 0. Codice:
voidOnStart()
{MqlTradeRequest request={0};
MqlTradeResult result={0};
double Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
double Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
int digits=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
double p=NormalizeDouble(ChartPriceOnDropped(),digits);
if( SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)==10)
{p=NormalizeDouble(ChartPriceOnDropped()*0.1,digits)/0.1;
}
int V=75;
if (p<Ask)
{
request.action =TRADE_ACTION_PENDING; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =MathFloor(AccountInfoDouble(ACCOUNT_BALANCE)/V/((Ask-p)/
SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)));
if (request.volume>AccountInfoDouble(ACCOUNT_BALANCE)/SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL))
{ request.volume=MathFloor(AccountInfoDouble(ACCOUNT_BALANCE)/SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL));
}
request.type =ORDER_TYPE_BUY_LIMIT; // тип ордера
request.price =Ask; // цена для открытия
request.deviation=50; // допустимое отклонение от цены
request.sl =p; // Stop Loss позиции
request.tp =NormalizeDouble(Ask+(Ask-p)*3,digits); // Take Profit позиции
request.type_filling=ORDER_FILLING_IOC;
request.type_time=ORDER_TIME_DAY;
request.stoplimit=Ask;
OrderSend(request,result);
}
se request.price per esempio mette: Ask-Point()*30 non lo imposta, anche la normalizzazione dei prezzi non dà nulla
Questo non è per gli indicatori, ma per mostrare le modifiche apportate alle proprietà degli oggetti grafici.
È necessario inviare un tick all'indicatore - poi l'indicatore ridisegnerà. Cioè, farà quello che dovrebbe fare sul nuovo tick.
Per inviare un nuovo tick dovete aspettare, il che non è un'opzione, o aggiornare il grafico usando PKM --> Refresh, anche questo non è un'opzione, o usare ChartSetSymbolPeriod() con questi parametri per il grafico corrente:
Come posso dire se l'indicatore non è pronto per lavorare con un altro timeframe?
La storia non è impaginata (non costruita) per gli intervalli di tempo adiacenti. L'indicatore funziona su M15, ma ho bisogno di guardare H1 (in cima al grafico M15), quando lo cambio - il grafico è vuoto. Quando aggiorno tra un paio di secondi - bellezza, tutti i buffer sono resi.
Come posso fare in modo che l'indicatore controlli la storia su un altro timeframe e trattenere il calcolo finché non appare?
Non pensavo di incontrare un tale problema, perché a prima vista dovrebbe essere una cosa ovvia ridisegnare il grafico dal programma. In questa luce, lo scopo della funzione ChartRedraw() non è chiaro...
Non è per gli indicatori, ma per visualizzare le modifiche apportate alle proprietà degli oggetti grafici.
È necessario inviare un tick all'indicatore - poi l'indicatore sarà ridisegnato. Bene, cioè farà quello che dovrebbe fare sul nuovo tick.
E per inviare un nuovo tick, è necessario o aspettare per esso, che non è un'opzione, o aggiornare il grafico da PCM --> Refresh, che non è anche un'opzione, o utilizzare la funzione ChartSetSymbolPeriod() con tali parametri per il grafico corrente:
se request.price per esempio mette: Ask-Point()*30 non lo imposta, anche la normalizzazione dei prezzi non dà nullaSalve, aiutatemi, ho scritto uno script che apre un ordine limite ma a prezzo di mercato. Tutto funziona, ho deciso di cambiarlo per mettere un limite sotto/sopra il mercato, niente funziona, anche se il codice di ritorno del server di trading 10009, e GetLastError() restituisce 0. Codice:
Questo non è per gli indicatori, ma per mostrare le modifiche apportate alle proprietà degli oggetti grafici.
È necessario inviare un tick all'indicatore - poi l'indicatore ridisegnerà. Cioè, farà quello che dovrebbe fare sul nuovo tick.
Per inviare un nuovo tick dovete aspettare, il che non è un'opzione, o aggiornare il grafico usando PKM --> Refresh, anche questo non è un'opzione, o usare ChartSetSymbolPeriod() con questi parametri per il grafico corrente:
Artem, grazie.
Funziona tutto. :)
Qualcuno sa come disabilitare la visualizzazione di tutti gli indicatori utilizzati nell'EA sul grafico durante il test visivo?
TesterHideIndicators(true);
Come posso dire se l'indicatore non è pronto per lavorare con un altro timeframe?
La storia non è impaginata (non costruita) per gli intervalli di tempo adiacenti. L'indicatore funziona su M15, ma ho bisogno di guardare H1 (in cima al grafico M15), quando lo cambio - il grafico è vuoto. Quando aggiorno tra un paio di secondi - bellezza, tutti i buffer sono resi.
Come posso fare in modo che l'indicatore controlli la storia su un altro timeframe e trattenere il calcolo finché non appare?
TesterHideIndicators(true);
Grazie mille ))))
Non posso ottenere i valori ATP da un altro lasso di tempo:
dal timeframe corrente - funziona. da timeframe precedenti - sempre 0
Sui futures, come si crea un contratto continuo per l'analisi tecnica dei grafici?