新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 265

 
STARIJ:

该图是在浏览器中还是在哪里?

不,终端中的图形

 
Vitaly Muzichenko: 不,终端中的图形
//+------------------------------------------------------------------+
//| Скрипт для вызова калькулятора и проч           -Калькулятор.mq4 |
//+------------------------------------------------------------------+
#property strict

#import "shell32.dll"                   // Все строки кончаются 0
   int ShellExecuteW(int hwnd,          // Хендл родительского окна
                     string Operation,  // Указатель на строку операции. Open, Print, Explore
                     string File,       // Указатель на строку с именем исполняемого файла
                     string Parameters, // Указатель на строку с параметрами
                     string Directory,  // Указатель на строку с именем папки
                     int ShowCmd);      // 0 = показать
#import

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
  // Запустить калькулятор
  ShellExecuteW(0, "Open", "Calc.exe", "", "", 0);

  // Открыть папку
  string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
  ShellExecuteW(0,"explore", terminal_data_path+"\\MQL4", "", "", 1);

  // Открыть HTML-файл
  ShellExecuteW(0,"Open", terminal_data_path+"\\DetailedStatement.htm", "", "", 1);

  // Открыть Яндекс
  ShellExecuteW(0,"Open", "Yandex.ru", "", "", 1);
}
 
STARIJ:

对了,我想起了调用外部命令的事,你能告诉我如何告诉浏览器吗(以及是否可能)。

"打开http://bla-bla-bla 页面,如果它已经存在,就显示相应的标签"。

ShellExecuteW(0, "Open"....)被用来在每次打开一个新标签时

 
Artyom Trishkin:

当相同质量的黄瓜在10个旁边时,你是否总是买50个?


每隔一段时间就会有一次)。

你知道交易的第一条规则 - 趋势是你的朋友?

 
Taras Slobodyanik: 你知道交易的第一条规则 - 趋势是你的朋友?

历史会重演--上升--下降 上升--下降。因此,向上卖,向下买

 
STARIJ:

谢谢你,这一切都解决了。

 
Taras Slobodyanik:

每隔一段时间就会有一次)。

你知道交易的第一条规则--趋势是你的朋友?

谁不知道呢,但当黄瓜仓库装得满满的(黄瓜潮流的结束),要卖掉黄瓜为仓库腾出空间时,我不会再买一批黄瓜。我先卖一两批,免得把箱子放在仓库的屋顶上,这些箱子会烂掉,或者被无情地偷走或被乌鸦吃掉。

对我来说,"在上面 "是指你可以看到仓库屋顶的水平,在下面你可以看到其地板的水平......

所以,你去那里...

 
Taras Slobodyanik:

每隔一段时间就会有一次)。

你知道交易的第一条规则--趋势是你的朋友?


这个规则只适用于你是一个做市商或至少是一个DC,并且知道其形成和发展。从一个正常交易者的角度来看,趋势是这个市场上可能存在的最卑鄙和最狡猾的动物。

因为它是100%确定的,只有在完成))))。

有这样的朋友,你不需要任何敌人......。
 
Taras Slobodyanik:

每隔一段时间就会有一次)。

你知道交易的第一条规则 - 趋势是你的朋友?

这不是第一条规则。第一个是低买高卖。

而上涨或下跌,趋势或反趋势并不是规则,而是个人的偏好。

 

Artyom 下午好。我的名字是丹尼尔。我的问题是以下问题。我在MQL4中写了我的专家顾问,更准确地说,我是根据视频教程重写的。 显然,有一些错误,但它不能很好地编译。

//+------------------------------------------------------------------+

//| test7.mq4 |

//| Copyright 2017, MetaQuotes Software Corp.

//| https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2017, MetaQuotes Software Corp."

#属性链接 "https://www.mql5.com"

#财产版本 "1.00"

#属性严格

//-------------------------------------------------------------------

外来的双倍lot = 0.1。

外置 int TakeProfit = 300;

外来的int StopLoss = 50;

外置 int Magic = 777;

外在的inttern 滑动=3。

//-------------------------------------------------------------------

extern string TMA = "TMA指标参数"。

外部字符串 TimeFrame = "当前时间框架"。

外置 int HalfLength = 56;

外部int Price = "PRICE_CLOSE;

外置双倍ATRMultiplier = 2.0。

外部的ATRPeriod = 100。

外部 bool Interpolate = true。

//-------------------------------------------------------------------

双重PriceHigh, PriceLow, SL , TP。

int ticet。



//+------------------------------------------------------------------+

//|专家初始化功能|

//+------------------------------------------------------------------+

int OnInit()

{

如果(Digits == 3 || Digits == 5)。

{

TakeProfit *=10。

StopLoss *=10。

滑移量*=10。

}

return(INIT_SUCCEEDED)。

}

//+------------------------------------------------------------------+

//|专家去初始化函数|

//+------------------------------------------------------------------+

空白的OnDeinit(const int reason)。

{

}

//+------------------------------------------------------------------+

//|专家勾选功能|

//+------------------------------------------------------------------+

空白的OnTick()

{

PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);

PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);

如果(CountSell() == 0 && Bid >= PriceHigh)

{

tiket = OrderSend(Symbol(, OP_SELL, lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);

如果(tiket > 0)

{

SL = NormalizeDouble(Bid + StopLoss*Point, Digits)。

TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)。

如果(OrderSelect(tiket, SELECT_BY_TICKET))

OrderModify(tiket, OrderOpenPrice(), SL, TP, 0)

}

}

}

//--------------------------------------------------------------------------------------------

如果(CountBuy() == 0 && Ask <= PriceLow)

{

tiket = OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);

如果(tiket > 0)

{

TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)。

SL = NormalizeDouble(Ask - StopLoss*Point, Digits);

如果(OrderSelect(tiket, SELECT_BY_TICKET))

OrderModify(tiket, OrderOpenPrice(), SL, TP, 0)。

}

}

//+------------------------------------------------------------------+

int CountSell()

{

int count = 0。

for (int trade = OrdersTotal()-1; trade>=0; trade--)

{

如果(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))

{

如果(OrderSymbol() == Symbol() && OrderMagicNumber) == Magic && OrderType() == OP_SELL)

count++。

}

}

return(count)。

}

//-----------------------------------------------------------------------------------------------

int CountBuy()

{

int count = 0。


for (int trade = OrdersTotal()-1; trade>=0; trade--)

{

如果(OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))

{

如果(OrderSymbol() == Symbol() && OrderMagicNumber) == Magic && OrderType() == OP_BUY)

count++。

}

}

return(count)。

}

原因: