Меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд. Возвращает true в случае удачного помещения команды в очередь графика, иначе false. Чтобы...
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);
}
我没想到会遇到这样的问题,因为乍一看,从程序中重新绘制图表应该是理所当然的事。有鉴于此,ChartRedraw()函数 的目的并不明确......
它不是用于指示器,而是用于显示在图形对象的属性中所作的改变。
你需要向指标发送一个刻度 - 然后指标将被重新绘制。好吧,也就是说,它将在新的刻度上做它应该做的事情。
而要发送一个新的tick,你需要等待它,这不是一个选项,或者通过PCM-->刷新图表,这也不是一个选项,或者使用ChartSetSymbolPeriod() 函数,对当前图表使用这样的参数。
如果request.price的例子是:Ask-Point()*30没有设置,价格正常化也没有任何结果。你好,请帮助我,我写了一个脚本,开了一个限价单,但是是以市场价格开的。所有的工作,决定把它改成低于/高于市场的限制,没有任何作用,虽然交易服务器的返回代码是10009,GetLastError()返回0。 代码。
这不是为了指示器,而是为了显示对图形对象的属性所作的改变。
你需要向指标发送一个刻度线--然后指标会重新绘制。也就是说,它将做它应该做的事情,在新的蜱虫。
要发送一个新的tick,你必须等待它,这不是一个选项,或者使用PKM--> Refresh刷新图表,这也不是一个选项,或者使用ChartSetSymbolPeriod(),对当前图表使用这些参数。
Artem,谢谢你。
这一切都在发挥作用。:)
有谁知道如何在视觉测试 时禁止在图表上显示EA中使用的所有指标?
TesterHideIndicators(true)。
如何判断该指标是否可以在另一个时间框架下工作?
历史上相邻的时间段没有分页(没有建立)。该指标在M15上工作,但我需要看H1(在M15图表的顶部),当我切换它时--图表是空的。当我在几秒钟内刷新 - 美,所有的缓冲区都被渲染了。
我怎样才能使指标在另一个时间框架上检查历史记录,并保持计算,直到它出现?
TesterHideIndicators(true)。
非常感谢你))))
我无法从另一个时间框架中获得ATP值。
从当前的时间框架 - 有效。 从较早的时间框架 - 总是0
在期货上,你如何创建一个连续的合同?用于技术图表分析?