voidOnTick()
{
//---if(IsNewBar()==true)
{
if(TimeHour(TimeCurrent()) >= StartHour && TimeHour(TimeCurrent()) <= EndHour)
{
if(ExistPositions(NULL,-1,0,-1)==false)
{
OpenPosition(Symbol(),OP_SELL,0.1,Bid+sl*Point,Bid-tp*Point);
OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point);
}
}
}
}
должны просто открываться два ордера при условии что нету открытых ордеров и в определенное время
функции брал из ветки кима
пробовал магик добавлять все равно не работает
тупо игнорируется функция на проверку открытых ордеров
и открываются позиции на каждом баре
/*Предназначена для проверки наличия открытых покупок или продаж. Аналогична функции ExistOrders. По умолчанию осматривает все позиции: текущего и других инструментов. Конкретизировать отбор можно комбинацией фильтров - параметров функции:
sy - Накладывает ограничение на наименование инструмента. По умолчанию параметр равен "" - отсутствие ограничений, то есть любой инструмент. Если передать NULL, то отбор позиций будет ограничен текущим инструментом.
op - Накладывает ограничение на тип позиции (Buy/Sell). По умолчанию ограничение отсутствует, то есть проверяется наличие позиции любого типа. Допустимые значения параметра -1, OP_BUY и OP_SELL.
mn - Накладывает ограничение на идентификационное ("магическое") число позиции. По умолчанию ограничение отсутствует, то есть проверяется наличие позиции с любым магическим числом.
ot - Накладывает ограничение на время открытия позиции. Проверяется, чтобы позиция была открыта позже значения данного параметра. По умолчанию ограничение отсутствует, то есть проверяется наличие позиции с любым временем открытия.
*///+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 06.03.2008 |//| Описание : Возвращает флаг существования позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время открытия) |//+----------------------------------------------------------------------------+bool ExistPositions(string sy="",int op=-1,int mn=-1,datetime ot=0)
{
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(ot<=OrderOpenTime()) return(True);
}
}
}
}
}
}
return(False);
}
デバッガが動作しなくなったのですが、なぜですか?
5月5日の中頃から、Debuggerがブレークポイントで変数値を出さなくなりました。すべてのプログラムにおいて、すべての変数に対して。 同時に、プログラム自体も従来通り動作します。 当時(現在に至るまで)Editor は「ver.5.00build 934 "とMetaTrader "ver.4.00build 646" .
以下は簡単なスクリプトで、デバッガではこのように表示されます。何が問題なのか、教えていただけませんか?
デバッガが動作しなくなったのですが、なぜですか?
5月5日の中頃から、Debuggerがブレークポイントで変数値を出さなくなりました。すべてのプログラムにおいて、すべての変数に対して。 同時に、プログラム自体も従来通り動作します。 当時(現在に至るまで)Editor は「ver.5.00build 934 "とMetaTrader "ver.4.00build 646" .
以下は簡単なスクリプトで、デバッガではこのように表示されます。何が問題なのか、教えていただけませんか?
ポジションを建てる 前に、シンボルの手数料とスワップを$で調べるにはどうしたらよいですか?
こんにちは......昔々、私はすべての可能な種類のトロールでフォーラムでライブラリを発見した......今私はそれを見つけることができない、私は多くのリンクを掘った、それは見つけることができません。
https://www.mql5.com/ru/code/7108
この質問はかなり古く、以前にも100%質問されたことがあるのですが、またしても機能がうまく働かず、その理由を思い出せません......。
この質問はかなり古く、以前にも100%質問されたことがあるのですが、またしても機能がうまく働かず、その理由を思い出せません......。
なぜかというと、「ばかばかしいほど無視して...」は、いつもfalseを返すほど効果があるかもしれないからです。つまり、オープンオーダーが表示されないだけで、最悪...。という設計になっているんです :)))
ブランチから取り出した機能です
これは、ブランチから取り出した機能です。
しかし、自分でそのようなチェックを書くのが難しい場合は、利用できるものは利用しましょう...。こんな風に試してみてください。