//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после открытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime SecondsAfterOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
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=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return(TimeCurrent()-t);
}
// Тут начало функции открытия позиций (открытие Buy)....
// Ниже код открытия Sell:
PauseMain51=random(5,9)*60;
if (!Lot()) return;// Средств не хватает на миним.- выходимif (!OpnSell51 || !Trade) return;
if (ExistPositions(NULL, OP_SELL, 51, 0)) // Если есть такой же открытый Sell
{
if (SecondsAfterOpenLastPos(NULL, OP_SELL, 51)<=/* PauseMain51*/ 7*60) return; (7*60 сек = 7 минут)
// Если прошло мало времени - валим
}
//---------------------- Позиции ещё нету - открываемся...-----------------------------
divider=1;
Lots=GetSizeLot();
Magic=51; // Задаём магик... 5 и 1; 5 = пять минут, 1 = стратегия 1
New_Comm="Sell_M5_Стратегия_1_Основная позиция"; // Задаём комментарий для позиции
Lots_New=NormalizeLot(Lots/divider, False, NULL);
OpenPosition(NULL,OP_SELL,Lots_New,0,pb-tp*po,Magic,New_Comm);
return;
static int time = Time[0];
如果(时间<时间[0]){
// 老蜡烛
} else {
// 新的蜡烛
Time = Time[0];
}
现在,交易的时间是以前的一半
与其检查新条,不如在开放之间暂停,以秒为单位设置。
我是这样检查的(黑体字,忽略/*PauseMain*/--它是一个以分钟为单位的随机延迟值--从5到9)。
我希望这有意义...
Boris,在代码中做了一个小的修正,忘了在返回原始地段时增加一个重置阵列位置的功能。
非常感谢!一切都很顺利。走得很好,并把正确的地段!!!。
我怎样才能改变或在代码中添加一些东西来设置栏的宽度?
在指标设置 中 - 线条类型、颜色和宽度/厚度
在指标设置中 - 线条类型、颜色和厚度/宽度
SetIndexStyle(1, DRAW_LINE,EMPTY)。
SetIndexStyle(2, DRAW_NONE)。
SetIndexStyle(3, DRAW_NONE)。
SetIndexStyle(4, DRAW_NONE)。
它在这里 ....... 但我的工具的线宽是0,我想把宽度设为2,这样我就不用处理设置了 ...... 我不知道怎么做 .... 我不是一个程序员 .... 请帮助我 ))))
我根本不知道什么是编程。我想使CCI过滤器(https://www.forex-tsd.com/indicators-metatrader-4/3356-cci-filter.html)与WPR相同,将CCI改为WPR,并改变条形图着色条件中的水平(不是像CCI那样的-100、0、100,而是-60、-50和-40,因为在MT中WPR似乎有-100到0的范围,对吗?)但由于某些原因,它在编译时出现了错误,屏幕上显示出一个单色的指示器。有什么问题吗?预先感谢
记忆是无用的)。
我想知道什么样的货币,规定了哪些变量
string EUR="EURUSD"。
string GBP="GBPUSD"。
string symbl = ""。
我在开始时写了以下内容。
symbl = symbl(); // 获得符号的值
我想把收到的symbl的值和我的变量的值进行比较,如果它们匹配,就做出决定。
switch (symbl) {
case .......... 则不会发生任何事情(( break;
case ................ break;
}
刷新我的记忆))
我想明白了,只能使用一个字符常数,但我怎么做呢?
记忆是无用的)。
我想知道什么样的货币,规定了哪些变量
string EUR="EURUSD"。
string GBP="GBPUSD"。
string symbl = ""。
我在开始时写了以下内容。
symbl = symbl(); // 获得符号的值
我想把symbl的结果和我的变量值进行比较,如果它们匹配,我就可以做出决定。
switch (symbl) {
case .......... 则不会发生任何事情(( break;
case ................ break;
}
刷新你的记忆 ))