case2 : // кейс для открытия Sell по AUD/USDif(TimeServer() == true)
{
if(Symbol() == AUDUSD)
{
RefreshRates();
Open_Order = OrderSend("AUDUSD",OP_SELL,lot,Bid,0,0,0);
Alert("Тикет открытого ордера ", Open_Order, GetLastError());
//-------------------------------------------------------------------------------------------------------------// другая функция//-------------------------------------------------------------------------------------------------------------int AUDUSD_Analizing()
{
if(AUDUSD_Prices_new > AUDUSD_Prices_old)
{
s1 = AUDUSD_Prices1;
s2 = AUDUSD_Prices2;
s3 = s1 - s2;
if(raznica > s5)
{
Alert("--- ВРЕМЯ ОТКРЫВАТЬ ОРДЕР НА ПОКУПКУ ---");
вот в этом месте мне необходимо обратиться к case 2 - вызвать его запуск на исполнение, затем
отсюда же необходимо обратиться к case 5 (к примеру), case 9, case 16 и т.д.
и только потом завершить исполнение данной функции и вернуться в старт
string symb;
ENUM_ORDER_TYPE ordType;
switch(???)
{
case1
symb = "audusd";
ordType = OP_BUY;
break;
case5
symb = "gbpusd";
ordType = OP_BUY;
break;
case9
symb = "eurusd";
ordType = OP_BUY;
break;
}
// И дальше получение цен, определение СЛ и ТП с последующем открытием ордера.
但在我看来,最好是将其全部包裹在一个用户定义的函数中。
void openOrder(string symb, ENUM_ORDER_TYPE ordType)
{
// Символ и тип ордера передаётся при вызове функции. Здесь достаточно получить соответствующие цены и открыть ордер.
}
而不是,例如,先传案例1,再传案例2,等等。
这些案例执行了一个开盘指令
该订单在一个以上的地方打开。你必须完全按照你在这个代码中的思维方式来思考,这很难。
有不止一个开口。在这样的代码中,你必须准确地思考你的想法,而这很难。
如果在EA的OnTick里面有一个循环,需要相当长的时间,它是否会被完全执行,还是新的tick的到来会打断所有这些?
我也不明白,在我的例子中,循环被打开了,但不是所有的订单都被打开了,有些被打开了两次,有些被跳过了,我明白,一个新的tick触发了开始,代码暂停执行并重新开始工作。
我知道,一个新的刻度线同时触发了一个开始,代码暂停执行并重新开始执行。
不要编造这个。
阅读帮助,那里清楚地写着,如果在EA中有复杂的计算,新的tick将被跳过。
在关于事件处理功能 的文章中的某个地方,或者在交易操作中,或者在RefreshRates中。
在你的代码中寻找逻辑错误
HH: switch() - case不用于复杂的逻辑条件,更好的组合if() else - 所以你会得到更明确的逻辑分支
不要编造它。
阅读帮助,它清楚地指出,如果在EA中存在复杂的计算,新的刻度将被跳过。
在关于事件处理功能 的文章中的某个地方,或者在交易操作中,或者在RefreshRates中。
在你的代码中寻找逻辑错误
SZY: switch() - case不用于复杂的逻辑条件,更好的组合if() else - 所以得到更明确的逻辑分支
是的,谢谢,我已经决定用if-else来写所有的东西。
你为什么要在这里添加开关?把交易的方向 和所需的开口数量输入函数,并在循环中按指定的数量开口,这样做比较容易。
这就是为什么我说,理解你的逻辑超出了我的想象。为什么如此混乱?
你为什么要在这里添加开关?把交易的方向 和所需的开口数量输入函数,并在循环中按指定的数量开口,这样做比较容易。
这就是为什么我说,理解你的逻辑超出了我的想象。为什么如此混乱?
好吧,我的代码刚刚增加了尺寸,我想这将会更容易。
实际上,如果我们有机会在一个函数的执行过程中随意调用case,会更简单、更紧凑。
我不需要在一个循环中打开类似的交易,在发生信号时,它们会同时为不同的符号打开(尽可能地)。
案例1 - Audusd购买
案例5 - 英镑兑美元买入
案例9 - 买入欧元区
等。
在第一种情况下,我有一张表是案例,第二张表是分析,如果它们相互作用,就会有500行。
第二种变体意味着在有分析的函数中规定一个特定的顺序开放,总行数将达到1200行以上,这将最终影响程序的执行速度。
你能帮助我吗,请!?专家顾问使用动态计算偏差的包络指标。但当它显示在图表上时,它显示了所有以前的条形图上的指标偏差的动态。
1.有什么方法可以使指标正确地绘制吗?也就是说,它将只在自己的条形图上画出带有偏差的指标。
2.如何在专家顾问中禁止绘制指标,只留下其计算结果?我想在专家设置中启用或禁用指标的绘制 )
好吧,最后我的代码只是增大了尺寸,而我以为会更简单。
总之,如果在一个函数的执行过程中可以随意调用case,那会更容易,代码也会更紧凑。
我不需要在一个循环中打开类似的交易,在发生信号时,它们会同时为不同的符号打开(尽可能地)。
案例1 - Audusd购买
案例5 - 英镑兑美元买入
案例9 - 买入欧元区
等。
在第一种情况下,我有一张表是案例,第二张表是分析,如果它们相互作用,就会有500行。
第二种变体意味着在函数中规定了一个特定的分析顺序,这将被拉伸成一个尿布,总行数将达到1200行以上,这将最终影响程序的执行速度。
你用什么打入这么多行的代码?这是我最后的一个EA,它与FORTS上的一组证券一起工作。
有多少证券将被上市,就有多少证券将被交易。而这个EA控制了两个交易时间段,带有追踪功能,当然还有分析功能,只有326行。
如果你想使用开关,你不必在每个变体中添加位置开口。只需指定符号名称、交易操作的类型 和
但在我看来,最好是将其全部包裹在一个用户定义的函数中。