[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 504

 
DDFedor >>:


та переменная, которую вы создадите. к которой будете обращать и с которой будете работать. прочитайте про глобальные переменные - все сразу станет понятно. https://docs.mql4.com/ru/globals

你能向我解释一下你引用的链接中所说的内容吗? 我是说,用你自己的话 具体回答我的问题。

 
为了节省时间,请把你的脚本或我们所说的部分写进去,我们会把它改成GlobalVariable。这样,你会更快地理解。
 
zhuki >>:
Чтобы сэкономить время положите свой скрипт или ту часть о которой идёт речь,а мы её поправим на GlobalVariable. Так вы быстрее поймёте.

剧本可以放下,但我没有解释清楚吗? 请告诉我你有什么不明白的地方,谢谢

 
Oper >>:

Скрипт то положить можно,но неужели я невнятно и тупо объяснил?Скажите,что непонятно вам,пожалуйста

你只是不明白外部变量和全局变量之间的区别,不明白的话,向你解释什么都是没用的。

顺便说一下,全局变量和全局声明变量之间也有区别,而且也很重要。

所以,你最好把脚本发给我们,有人会帮你纠正。

 
你需要像这样把变量保存到GlobalVariable。
GlobalVariableSet("Variable",Value(double));
当你在下次运行时需要它时,你可以检查它是否存在,所以
GlobalVariableCheck("Variable");
并取其内容,所以
...=GlobalVariableGet("Variable");
并根据需要使用。GlobalVariable的保存时间是14天,然后就会被覆盖。
对GlobalVariable的访问对所有的脚本和专家顾问都是通用的,所以名称应该是唯一的。
 
jokonda >>:
Всем привет! Только начинаю работать в Excel, научилась боль-мень обращаться с формулами. А сейчас нужно сделать ссылку на имя и не получается. Подскажите, пжлста -
напрм, в одной ячейке название, в соседней примечание, а в третьей ячейке нужно сделать ссылку или формулу, которая бы объединяла первые две ячейки.
И чтоб потом копировать текст в первую и вторую, а они объединеные отражались в третьей.

只有你自己的经验才能帮助你,慢慢来,好好学习。

 
Urain >>:

Вы просто не поняли разницу между внешней переменной и глобальной, а без этого пояснять вам что либо бестолку.

Кстати там есть ещё разница между глобальной переменной и переменной обьявленной на глобальном уровне и она тоже довольно существенная,

так что лучше выкладывайте скрипт вам его поправят.

谢谢你提供的信息。

 
zhuki >>:
Нужно сохранить переменную в GlobalVariable так.
GlobalVariableSet("Переменная",Значение(double));
когда она понадобиться при следующем запуске можно проверить существует ли она так
GlobalVariableCheck("Переменная");
И взять её содержимое так
... =GlobalVariableGet("Переменная");
И использовать по необходимости. Время сохранения в GlobalVariable 14 дней потом затрётся.
Доступ к GlobalVariable общий для всех скриптов и советников,поэтому имя должно быть уникальным.

谢谢你,这很有帮助。

 
你好!

这里是开设 买入头寸 的区块。
,该位置在最接近的刻度处打开。

int start()
{
double bid =MarketInfo("GBPUSD",MODE_BID)。
double ask =MarketInfo("GBPUSD",MODE_ASK);
double point =MarketInfo("GBPUSD",MODE_POINT)。

int tick=OrderSend("GBPUSD",OP_BUY,0.01,ask,3,bid-30*Point,bid+30*Point) 。
如果(tick==-1)
{
警告("错误#"+GetLastError()。
}
else Alert ("Position opened")。
返回。
}

但问题是,开仓后,随着下一个tick向上,又有一个开仓,又有一个开仓(不等第一个关闭)......
我怎样写才能使新的交易(同一个)只在第一个交易执行后打开,而不是在随后的每一个tick上升时打开?
如何写出在执行第一笔交易的条件(任何--损失/利润)后,将以不同的条件和/或相反的方式开启交易?

提前感谢!
 
Lim1 писал(а)>>
你好!

这里是建立买入头寸的区块。仓位在最近的tick向上打开。


但问题是,开仓后,在下一次上涨时,又有一个开仓,又有一个开仓(不等第一个关闭)......。
我怎样写才能使新的交易(同一个)只在第一个交易被执行后打开,而不是在随后的每一个tick向上时打开?
如何写出在执行第一笔交易的条件(任何--损失/利润)后,交易将以不同的条件和/或相反的方式打开?

提前感谢!
bool IsPosOpen=false;

int start()
{
double bid =MarketInfo("GBPUSD",MODE_BID);
double ask =MarketInfo("GBPUSD",MODE_ASK);
double point =MarketInfo("GBPUSD",MODE_POINT);

if(IsPosOpen==false)
{
   int tick=OrderSend("GBPUSD",OP_BUY,0.01,ask,3,bid-30*Point,bid+30*Point);
   if(tick==-1)
   {
      Alert ("Ошибка № "+GetLastError());
   }
   else 
   {
      Alert ("Позиция открыта");
      IsPosOpen = true;
   }// end else
}// end if
return;
}// end start
原因: