void SimpleLock(string sy="", int mn=-1) {
double po, pp, ops1=0, ops2=0, opb;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<=k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
po=MarketInfo(OrderSymbol(), MODE_POINT);
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_SELL) {
opb=OrderStopLoss(); // Значение стопа позиции до модификации = (0???)
ops2=NormalizeDouble(OrderPrice(OP_BUY),Digits);
if (ops2>0 && opb!=0) {
ModifyOrder(-1, ops2+18*po, -1);
}
}
if (OrderType()==OP_BUY) {
opb=OrderStopLoss();
ops1=NormalizeDouble(OrderPrice(OP_SELL),Digits);
if (ops1>0 && opb!=0) {
ModifyOrder(-1, ops1-18*po, -1);
}
}
}
}
}
}
}
如果没有设置停止,则不调用修改...
如果你不为多头设置止损,那么修改就不会被调用..:
double OrderPrice(int type) {
double price;
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType()==type) {
price=OrderOpenPrice(); // Значение цены открытия в списке ордеров терминала позиции с типом type и индексом i
}
}
}
return(price); // Возвращает цену открытия последней в списке ордеров позиции с типом type и индексом не более k-1
}
有一个指标,Sanyok是作者。
它标志着在一根柱子上形成的分形的水平,其成交量大于分形前最后3根柱子的平均成交量。
如何将其加载到EA中?
我正在努力。
h=NormalizeDouble(iCustom(NULL,0, "vfractals",MODE_UPPER, 1),Digits)。
l=NormalizeDouble(iCustom(NULL,0, "vfractals",MODE_LOWER, 1),Digits)。
它不起作用。
NormalizeDouble(iCustom(NULL,0, "vfractals",MODE_UPPER, 1),Digits); 1. MODE_UPPER和MODE_LOWER意味着你从第一个和第二个指标缓冲区取值(你有零和第一个) 2.数字1表示取[1]个元素的值(在前一栏)。
谢谢你。
动议。
Pavel447 02.03.2011 10:57
你是怎么做的!?
如果你有一个专家顾问(或脚本),可以自动设置SL、TP、追踪止损,并在获利时转移到BU...?
提前感谢)。
dimeon 02.03.2011 11:41
帮助我在EA的代码中加入动态手数,使手数随着入金的增加而增加,或者作为入金的一个百分比?
FiboWave_v1_1lavtolot.mq4(9.26 KB) 删除
数组可以用在很多情况下,也可以用于很多不同的任务。那么,什么是正确的例子呢?
if (Cls_B[i]||Cls_S[i]) LotCt=NormalizeLot(OrderLots()/(4-i));
100yan:
它要求的是一个整数值,但数组也可以被声明为一个变量?как прописать [i] ?
说得更具体些。
数组是一个具有相同名称但不同数字的变量。
如何书写[i]?我似乎把它声明为一个变量......,它给出了一个编译错误。我不明白...它要求的是一个整数值,但数组也可以被声明为一个变量。
你能告诉我日志中的这些废话是什么意思吗?我怎样才能避免它呢?专家顾问用这个指标进行交易,出错后交易冻结,直到你重新启动终端,因为重新启动专家顾问可能再次崩溃。
22:39:53 Zigzag CLJ1,M5: 已删除
也许是因为我同时在远程服务器和自己的电脑上使用终端?
大家好!我有一个问题:在这个函数中,对于两个头寸(买入和卖出),我设置了止损,这样卖出的SL=开仓买入+18点,反之,买入的SL=开仓买入。
бла-бла-бла...
从函数中获得相反头寸的开盘价。
бла-бла-бла...
我们知道ModifyOrder函数是一个标准的KIMIW函数,我们用它来设置计算的止损...
问题是,EA只为卖出设置止损,而不是为买入设置止损......谁这么认为?
如果没有设置停止,则不调用修改...
如果你不为多头设置止损,那么修改就不会被调用..:
你确定所需订单的开盘价被返回了吗?