#property strict#include <Indicators\Trend.mqh>
bool ind;
CiMA MA;
externint pos=1;
externint sl=40;
externint tp=70;
datetime time;
datetime time2;
bool trade=false;
bool trade2=false;
int a,b;
intOnInit()
{
//---
MA.Create(Symbol(),PERIOD_CURRENT,10,6,MODE_EMA,PRICE_CLOSE);//создал машку//---return(INIT_SUCCEEDED);
}
voidOnTick()
{
//---if(IsNewBar()==true)//если новый бар включаемся
{
if(buy(pos)==true)//если цена выше МА продолжаем
{
if(!ExistPositions(Symbol(),-1,-1,0))//если нету открых ордеров продолжаем
{
if(GetTypeLastClosePos(Symbol(),-1)!=OP_BUY)//если тип последней закрытой позиции был не на покупку то тогда только покупаем таким образом я пред остерегаюсь от повторных входов в покупку если цена //все ещо выше МА...но почему то не работает открываются и дальше сделки на покупку если ордер закрылся выше МА....ХОТЯ НЕ ДОЛЖО ТАК КАК Я ОГРАНИЧИЛ ПО ТИПУ ПОЗИЦИИ ПОСЛЕДНЮЮ СДЕЛКУ И ОНИ ДОЛЖНЫ ТОЛЬКО // ЧЕРЕДОВАТСЯ И УЖ НИ КАК НЕ ПОВТОРЯТСЯ ПО НЕСКОЛЬКО РАЗ ПОДРЯД
{
trade=true;
}
if(trade==true)
{
OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point);
trade=false;
}
}
}
if(sell(pos)==true)
{
if(!ExistPositions(Symbol(),-1,-1,0))
{
if(GetTypeLastClosePos(Symbol(),-1)!=OP_SELL)
{
trade2=true;
}
if(trade2==true)
{
OpenPosition(Symbol(),OP_SELL,0.1,Bid+sl*Point,Bid-tp*Point);
trade=false;
}
}}
}
}
//возвращает истину если закрытие бара с указаной позицией выше МАbool buy(int pos)
{
if(iClose(Symbol(),0,pos)>MA.Main(1))
returntrue;
elsereturnfalse;
}
//+------------------------------------------------------------------+//| возвращает истину если закрытие бара с указаной позицией ниже МА//+------------------------------------------------------------------+bool sell(int pos)
{
if(iClose(Symbol(),0,pos)<MA.Main(1))
returntrue;
elsereturnfalse;
}
我使用Flive信号,但有时我想自己关闭一个订单。但我一关闭它,它就又打开了。有什么办法可以解决这个问题吗?
取消勾选 "同步位置..."。
我假设只有两个月极值--最小和最大...好吧,别介意,起初我有一个很长的代码,这就是为什么我请求帮助......但我恍然大悟,我设法把它装进四行。
这是如果在每月的蜡烛图上。当然会有iHigh(Symbol(),PERIOD_MN1, BarOfMonth);和iLow(Symbol(), PERIOD_MN1, BarOfMonth)。
而如果我们需要在一个月内找到日线图上的价格极值,那么至少在28个柱子上肯定会有不止一个;)
关于函数的另一个问题
如何使矩形向前画而不是向后画,例如在指定的价格上向前画五个柱子......,并且不重新画。
名称 "object_name "应该包含它被绘制的时间。例如,"Object_name "+TimeToString(Time[0]); 然后每个矩形将有自己的名字。
要指定零条的右移,在Time[0]上增加所需的条数,例如Time[0]+Period()*5*60(增加5条)。
在mql4中是否有办法 从视图中隐藏一些代码,折叠代码区,使其置于加号(+)之下?
像在尖锐的#region #endregion中,放在这些指令之间的代码将有可能被折叠。
我不明白什么是错的?在测试器中一切正常,但在真实和演示中,当我试图打开一个订单时,我得到 "错误0"。GetLastError()返回 "0",表示没有错误。这是什么意思?
这意味着代码中是这样写的,如果它困扰着你,请纠正它。
这是在代码中,如果它困扰着你,请修复它。
如果订单打不开,我应该怎么解决?