//---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //----
//---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ string sy="NULL"; int op=-1; int mn=-1; bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) { datetime t; double ocp, osl; int dg, i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderCloseTime()) { t=OrderCloseTime(); j=i; } } } } } } } if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) { dg=MarketInfo(sy, MODE_DIGITS); if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2; ocp=NormalizeDouble(OrderClosePrice(), dg); osl=NormalizeDouble(OrderStopLoss(), dg); if (ocp==osl) return(True); } return(False); } int start() { //---- bool stopl; stopl = isCloseLastPosByStop(sy,op,mn); if (stopl == true) Alert ("последняя сделка закрылась по s/l"); //---- return(0); }
我想在止损 平仓后显示一条信息,但在mt4中没有发生。
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
string sy="NULL";
int op=-1;
int mn=-1;
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
if (ocp==osl) return(True);
}
return(False);
}
int start()
{
//----
bool stopl;
stopl = isCloseLastPosByStop(sy,op,mn);
if (stopl == true)
Alert ("последняя сделка закрылась по s/l");
//----
return(0);
}
亲爱的论坛成员,我把 "平衡图 "指标挂出来,供大家审查。我认为在一个单独的窗口中会很有用--对自己的余额变化进行实时的视觉控制,对专家顾问的盈利能力进行最终控制......问题是它不起作用......我自己做了 "模型",但我对它的理解不是很深。我已经开发了一些指标,但我还没有用它做任何事情......如有更正,我将不胜感激。我写下了我想得到的东西。请不要犹豫,把它们捣碎,如果只是结果!也许别人会需要它,看来这个东西不是多余的......
你在所有杆上都有一个平衡?
我可能没有准确说明问题--也许会更准确一些
插入。但这是第二个。而且,最重要的是,我想观察开仓/ 平仓后的这些变化......
这将是类似于测试器中的平衡线的东西,但在真实的情况下?
我可能没有准确说明问题--可能更准确的说法是
你需要阅读交易历史,并阅读下一个仓位关闭时的余额。
股权有点复杂,但可以用完全相同的方式进行。
你可以将所有的计算转换为标准手数或以点为单位的计算。
与窗户的问题...
我在标准指标中插入#属性 indicator_separate_window 行 - 之后,MT4不想将其附加到财务工具上。为什么?
与窗户的问题...
我在标准指标中插入#属性 indicator_separate_window 行 - 之后,MT4不想将其附加到财务工具上。为什么?
也许这些值非常小,而且在底部的某个地方(窗口外)。
也许这些值只是非常小,而且是在底部的某个地方(窗口之外)。
但从理论上讲,应该有一个单独的窗口,尽管是一个空窗口?
另外--无论是指示器还是顾问....,都没有连接到
与窗户的问题...
我在标准指标中插入#属性 indicator_separate_window 行 - 之后,MT4不想将其附加到财务工具上。为什么?