// 订单功能 //全局变量: // Mas_Ord_New[31][9] // 最近已知的订单数组 // Mas_Ord_Old[31][9] // 以前(旧)的订单数组 // 第一索引 = 订单号码 // [][0] 没有定义 // [][1] 开仓订单价格(abs. // [][2] StopLoss of the order (abs. rate) // [][3] TakeProfit of the order (abs. rate) // [][4] number of the order // [][5] number of lots of the order.(Abc比率) // [][6] 订单类型0=B,1=S,2=BL,3=SL,4=BS,5=SS // [][7] 订单的神奇数字 // [][8] 0/1
到目前为止,就像这样。
//+------------------------------------------------------------------+
//| Fibo trading.mq4|
//| Minodi |
//| minodi@yandex.ru |
//+------------------------------------------------------------------+
#财产版权"Minodi"
#属性链接 "minodi@yandex.ru"
外来的int period_EMA = 233,
period_SMA = 233,
止损=30。
外来的双数Lot = 0.01。
外部字符串 SesEnd ="22:00"; //海或低的边界时间
//+------------------------------------------------------------------+
//| 脚本程序启动功能|
//+------------------------------------------------------------------+
int start()
{
//------- 每日价格、斐波和高低点渲染时间--------------+
int shift = iBarShift(NULL,1440,Time[0]) + 1;
double HiPrice = iHigh(NULL,1440,shift); //高价。
double LoPrice = iLow(NULL,1440,shift); //低价格
double OpPrice = iOpen (NULL,1440,shift); //open price
double ClPrice = iClose (NULL,1440,shift); // 收盘价
datetime StTime = iTime(NULL,1440,shift); // ?
如果(TimeDayOfWeek(StTime)==0/*Sunday*/)
{/Add fridays high and low
HiPrice = MathMax(HiPrice,iHigh(NULL,1440,shift+1))。
LoPrice = MathMin(LoPrice,iLow(NULL,1440,shift+1))。
OpPrice = iOpen(NULL,1440,shift+1);
ClPrice = iClose (NULL,1440,shift+1);
}
double Pivot =(HiPrice+LoPrice+ClPrice)/3;
double Range =HiPric-LoPrice;
double Fibo138 =1.382*Range+LoPrice;
double Fibo162 =1.618*Range+LoPrice;
double Fibo_138 =LoPric-(1.382*Range-Range);
double Fibo_162 =LoPric-(1.618*Range-Range);
//---------------- HiTime和Low-----------------------------------------+
int HiTime,LoTime。
int time; // 在下一个条形图上滚动这些数值。
if (time! =Time[0]){HiTime=0;LoTime=0;time=Time[0];}
如果(High[0]>HiPrice)HiTime=TimeCurrent()。
如果(Low[0]<LoPrice)LoTime=TimeCurrent()。
Comment("On this bar: "+"\n Time High Point="+HiTime+"\n Time Low Point="+LoTime);
//-----------------Ценовой диапазон Демарка-------------------------------+
int currDay, i=0; //
如果(currDay!=TimeDay(Time[i]))
{
如果(ClPrice<OpPrice) double x=(HiPrice + LoPrice + LoPrice)/2;
如果(ClPrice>OpPrice)x=(HiPrice+LoPrice+ClPrice+HiPrice)/2。
如果(ClPrice==OpPrice)x=(HiPrice+LoPrice+ClPrice+ClPrice)/2。
i++;
}
double MaxDay = x - LoPrice; // Demark价格范围
double MinDay = x - HiPrice; // Demark价格范围
// -----------Скользящие средние---------------------------------------------+
double EMA = iMA(15,0,period_EMA,0,MODE_EMA, PRICE_CLOSE,0);
double SMA = iMA(15,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0)。
double EMA1 = iMA(60,0,period_EMA,0,MODE_EMA,PRICE_CLOSE,0);
double SMA1 = iMA(60,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0);
//----------------Удаление вчерашних ордеров---------------------------------+
//------------------Ордера----------------------------------------------------+
亲爱的论坛成员,请查看代码,我计划逐步增加
这些是我给你的参数,在你开始之前放置它们
int HiTime,LoTime;
int time; // на следующем баре обнкляем значения
Вот эти параметры ято я давал, поместите перд стартом
int HiTime,LoTime;
int time; // на следующем баре обнкляем значения
亲爱的论坛成员,请注意并告诉我们犯了什么错误。
//+------------------------------------------------------------------+
//| Fibo trading.mq4|
//| Minodi |
//| minodi@yandex.ru |
//+------------------------------------------------------------------+
#财产版权"Minodi"
#属性链接 "minodi@yandex.ru"
外来的int period_EMA = 233,
period_SMA = 233,
止损=30。
魔力=55。
外来的双数Lot = 0.01。
外部字符串 SesEnd ="22:00"; //海或低的边界时间
int HiTime,LoTime。
int time; // 在下一个条形图上滚动数值
//+------------------------------------------------------------------+
//| 脚本程序启动功能|
//+------------------------------------------------------------------+
int start()
{
//------- 每日价格、斐波和高低点渲染时间--------------+
int shift = iBarShift(NULL,1440,Time[0]) + 1;
double HiPrice = iHigh(NULL,1440,shift); //高价。
double LoPrice = iLow(NULL,1440,shift); //低价格
double OpPrice = iOpen (NULL,1440,shift); //open price
double ClPrice = iClose (NULL,1440,shift); // 收盘价
datetime StTime = iTime(NULL,1440,shift); // ?
如果(TimeDayOfWeek(StTime)==0/*Sunday*/)
{/Add fridays high and low
HiPrice = MathMax(HiPrice,iHigh(NULL,1440,shift+1))。
LoPrice = MathMin(LoPrice,iLow(NULL,1440,shift+1))。
OpPrice = iOpen(NULL,1440,shift+1);
ClPrice = iClose (NULL,1440,shift+1);
}
double Pivot =(HiPrice+LoPrice+ClPrice)/3;
double Range =HiPric-LoPrice;
double Fibo138 =1.382*Range;
double Fibo162 =1.618*Range;
double Fibo_138 =(LoPrice-1.382*Range)-Range;
double Fibo_162 =(LoPrice-1.618*Range)-Range;
//---------------- time hai and low-----------------------------------------+
if (time! =Time[0]){HiTime=0;LoTime=0;time=Time[0];}
如果(High[0]>HiPrice)HiTime=TimeCurrent()。
如果(Low[0]<LoPrice)LoTime=TimeCurrent()。
Comment("On this bar: "+"\n Time High Point="+HiTime+"\n Time Low Point="+LoTime);
//-----------------Ценовой диапазон Демарка-------------------------------+
int currDay, i=0; //
如果(currDay!=TimeDay(Time[i]))
{
如果(ClPrice<OpPrice) double x=(HiPrice + LoPrice + LoPrice)/2;
如果(ClPrice>OpPrice)x=(HiPrice+LoPrice+ClPrice+HiPrice)/2。
如果(ClPrice==OpPrice)x=(HiPrice+LoPrice+ClPrice+ClPrice)/2。
i++;
}
double MaxDay = x - LoPrice; // Demark价格范围
double MinDay = x - HiPrice; // Demark价格范围
// -----------Скользящие средние---------------------------------------------+
double EMA = iMA(15,0,period_EMA,0,MODE_EMA, PRICE_CLOSE,0);
double SMA = iMA(15,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0)。
double EMA1 = iMA(60,0,period_EMA,0,MODE_EMA,PRICE_CLOSE,0);
double SMA1 = iMA(60,0,period_SMA,0,MODE_SMA,PRICE_CLOSE,0);
//------------------Ордера----------------------------------------------------+
如果(HiTime>LoTime){
int ticket1 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,HiPrice,0,0,Pivot,NULL,Magic,58000,Red) 。
int ticket2 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,HiPrice,0,0,LoPrice,NULL,Magic,58000,Red) 。
int ticket3 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,Fibo138,0,0,HiPrice,NULL,Magic,58000,Red) 。
int ticket4 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,Fibo138,0,0,LoPrice,NULL,Magic,58000,Red) 。
int ticket5 =OrderSend(Symbol(),OP_SELLLIMIT,Lot,Fibo162,0,0,HiPrice,NULL,Magic,58000,Red) 。
int ticket6 =OrderSend(Symbol(,OP_SELLLIMIT,Lot,Fibo162,0,0,Pivot,NULL,Magic,58000,Red);
}
如果(HiTime<LoTime){
int ticket7=OrderSend(Symbol(),OP_BUYLIMIT,Lot,LoPrice,0,0,Pivot,NULL,Magic,58000,Red) 。
int ticket8=OrderSend(Symbol(),OP_BUYLIMIT,Lot,LoPrice,0,0,HiPrice,NULL,Magic,58000,Red) 。
int ticket9=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_138,0,0,LoPrice,NULL,Magic,58000,Red) 。
int ticket10=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_138,0,0,Pivot,NULL,Magic,58000,Red) 。
int ticket11=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_162,0,0,LoPrice,NULL,Magic,58000,Red) 。
int ticket12=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Fibo_162,0,0,Pivot,NULL,Magic,58000,Red) 。
}
如果(HiTime>LoTime && ClPrice>Pivot) {
int ticket13=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Pivot,0,0,HiPrice,NULL,Magic,58000,Red) 。
int ticket14=OrderSend(Symbol(),OP_BUYLIMIT,Lot,Pivot,0,0,Fibo138,NULL,Magic,58000,Red) 。
}
如果(HiTime<LoTime && ClPrice<Pivot)
int ticket15=OrderSend(Symbol(),OP_SELLLIMIT,Lot,Pivot,0,0,LoPrice,NULL,Magic,58000,Red) 。
int ticket16=OrderSend(Symbol(),OP_SELLLIMIT,Lot,Pivot,0,0,Fibo_138,NULL,Magic,58000,Red) 。
}
return(0);
//+------------------------------------------------------------------+
乍一看,这些参数。
int currDay;
用于启动
论坛的先生们,帮助了解....
以下是部分代码(主要代码取自专家顾问的构建手册)。
// 订单功能
//全局变量:
// Mas_Ord_New[31][9] // 最近已知的订单数组
// Mas_Ord_Old[31][9] // 以前(旧)的订单数组
// 第一索引 = 订单号码
// [][0] 没有定义
// [][1] 开仓订单价格(abs.
// [][2] StopLoss of the order (abs. rate)
// [][3] TakeProfit of the order (abs. rate)
// [][4] number of the order
// [][5] number of lots of the order.(Abc比率)
// [][6] 订单类型0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] 订单的神奇数字
// [][8] 0/1
如果(Mas_Ord_Old[old][6]==0 && Bid>Mas_Ord_Old[old][2] && Bid<Mas_Ord_Old[old][3])。
Inform(1, Mas_Ord_Old[old][4]); // 所以买入订单被计数器信号关闭
else if (Mas_Ord_Old[old][6]==0 && Bid<=Mas_Ord_Old[old][2])
Inform(19,Mas_Ord_Old[old][4], Mas_Ord_Old[old][2])//
else if (Mas_Ord_Old[old][6]==0 && Bid>=Mas_Ord_Old[old][3])
Inform(20,Mas_Ord_Old[old][4],Mas_Ord_Old[old][3]//
else if (Mas_Ord_Old[old][6]==1 && Ask<Mas_Ord_Old[old][2] && Ask>Mas_Ord_Old[old][3] )
Inform(2, Mas_Ord_Old[old][4]); // 所以卖单被计数器信号关闭
else if (Mas_Ord_Old[old][6]==1 && Ask>=Mas_Ord_Old[old][2])
Inform(19,Mas_Ord_Old[old][4], Mas_Ord_Old[old][2))//这意味着SL已经触发
else if (Mas_Ord_Old[old][6]==1 && Ask<=Mas_Ord_Old[old][3])
Inform(20,Mas_Ord_Old[old][4],Mas_Ord_Old[old][3]); //TA触发了
其余的就没有兴趣了...
问题:在90%的情况下显示正确的参数,即如果SL被触发,参数是 "19",如果TP是 "20",如果订单被手动关闭,或被一个计数器信号关闭,参数是 "1 "或 "2"。它是这样设计的。
但有时(相当频繁),它没有返回 "20",而是返回 "19"(反之亦然),甚至是 "1"("2")。请帮助我正确描述 "如果 "功能:作为订单关闭原因的条件。
我想原因可能是在价格的四舍五入方面?