double Lot;
int Magic=123;
int start() {
double Price=iOpen(Symbol (),0,0);
int last_order_bar=0;
int ot=OrdersTotal();
if (ot>0) {
if (OrderSelect(ot-1,SELECT_BY_POS))
if (OrderType()==OP_BUY || OrderType()==OP_SELL) last_order_bar=iBarShift(Symbol(),0,OrderOpenTime());
}
int last_hist_order_bar=0;
int oht=OrdersHistoryTotal();
if (oht>0) {
if (OrderSelect(oht-1,SELECT_BY_POS, MODE_HISTORY))
if (OrderType()==OP_BUY || OrderType()==OP_SELL) last_hist_order_bar=iBarShift(Symbol(),0,OrderOpenTime());
}
if (ot==0)
if (Bid==Price)
//=============================================================== if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))
if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))
if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))
//============================================================
Lot=MarketInfo(Symbol(), MODE_MINLOT);
if (isCloseLastPosByStop(Symbol(), OP_BUY, Magic, Lot)) {
Lot=Lot*2;
OrderSend(Symbol(),OP_SELL,Lot,Bid,1,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
else {
Lot=0.1;
OrderSend(Symbol(),OP_SELL,1,Bid,Lot,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
return(0);
}
//+----------------------------------------------------------------------------+bool isCloseLastPosByStop(string sy, int op, int mn, double &ll) {
double pt;
int dg, i, j=-1, k=OrdersHistoryTotal()-1;
datetime t=0; // во избежание возможных ошибок после возможных будущих улучшенийfor (i=k; i>=0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderMagicNumber()!=mn) continue; // если магик не тот, переходим к следующемуif (OrderSymbol()!=sy) continue; // если символ не тот, переходим к следующемуif (OrderType()!=op) continue; // если тип не тот, переходим к следующемуif (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(OrderSymbol(), MODE_DIGITS); // количество знаков в цене символа ордера
pt=MarketInfo(OrderSymbol(), MODE_POINT); // размер пункта инструмента в валюте котировки ордераif (MathAbs(OrderClosePrice()-OrderStopLoss())<0.5*pt) { // Если закрыт по стопу
ll=OrderLots(); // записываем количество лотов в ордере, закрытом по стопуreturn(true); // возвращаем истину
}
}
return(False); // возвращаем ложь (позиции нету, либо не по стопу)
}
//+----------------------------------------------------------------------------+
但如果你重新开仓,头寸就会按差价的数额削减。
嗯,这将是一个特别整洁的变态。我不这么认为。
嗯,这将是一个特别优雅的变态。我不这么认为。
是的,我已经检查过了,我想......如果不是这样,你可以把卖出的自来水放在伊斯兰账户中,买入的放在差价账户中。会有稳定的利润......比银行里的还多
1.
2.部分关闭订单的情况--票据被改变,并在评论中写到新的订单,很明显,它可以被达成。有些经纪商在通过夜间/周末调仓时的情况,他们关闭头寸,并在白天开始时再次开仓,在这种情况下,该票如何表现?旧票写在新位置的评论中,什么也没有发生? 如果有4-8个以上的订单,有什么方法可以记录下来?
数据时间与int相同
这让我想到--我确信datetime 是一个无符号的int,我检查了一下,你是对的。事实证明,MT4的寿命不会超过2038年;)。仍有时间))))))))))))))))))))))))。
Vladislav:你不应该删除这个帖子,我认为。
当然,IMHO并不是一无是处:Datetime 确实是int。虽然,所写的一切在一般情况下都是正确的,但在这个案例中却不是。在这里我无法理解ICL开发者的逻辑,(((((((((((((。也许他们会在新版本的语言中纠正它。
SZ被删除的帖子的意思是,类型应该按照预期使用,否则你会遇到运行时错误。在这种情况下,对于日期来说,最好是datetime,而不是int,因为有一个希望,即类型的不匹配将被纠正。
当然,IMHO认为,没有什么好说的:Datetime 实际上是int。 虽然,所写的一切在一般情况下都是正确的,但在这个案例中却不是。我无法理解这里的ICL开发者的逻辑,(((((((((((((。也许他们会在新版本的语言中纠正它。
HH被删除的帖子的意思是,应该按照预期使用这些类型,否则你会遇到运行时错误。在这种情况下,对于日期来说,最好是datetime,但不是int,因为有希望纠正类型的不匹配。
我同意,我们不应该用int代替datetime,也不应该用color。甚至不是因为执行错误,而是从开发人员把事情安排好后会发生什么。
当然,IMHO认为,没有什么好说的:Datetime 实际上是int。 虽然,所写的一切在一般情况下都是正确的,但在这个案例中却不是。我无法理解这里的ICL开发者的逻辑,(((((((((((((。也许他们会在新版本的语言中纠正它。
SZ被删除的帖子的意思是,类型应该按照预期使用,否则你会遇到运行时错误。在这种情况下,对于日期来说,最好是datetime,但不是int,因为有希望纠正类型的不匹配。
各位专业人士....,我很困惑
TarasBY 和artmedia70 说,我的错误与存储订单的神奇数字的变量值有关。
维宁 说这不是魔术师的问题,而是错误的逻辑......... artmedia70 与他争 论。
.
如果专业人士对我的问题没有达成共识,作为初学者,我应该怎么做才能解决我的问题呢?
魔术师的错误导致你的EA在停止时看不到它的头寸是在停止时关闭的。为什么?答案是,你用magic 123开仓,并将变量Magic发送给检查在止损点平仓的函数。你认为它在隐式初始化时等于什么?零。该函数自然是在搜索带有神奇数字0的位置,并且在你的位置上等于123。而且我们不是在争论,只是......推理...检查反应,以便在停止时关闭。
我没有看你的 "死 "的EA逻辑的其余部分--我是在帮你弄清楚在停止时检查关闭的功能...
不客气。好运!
阿列克谢!下午好。
我们的沟通没有走出我的脑海......,这就是原因.....。
关于我的编码,我多次听到关于缺乏逻辑的评论。
昨天你向我解释了布尔代数,这是个广泛而深刻的主题。
事实是,我不是一个数学家,当然也不是一个代数头脑。
一些不是很困难的数学东西我都能理解....,但不是一下子就能理解的,而复杂的东西我的大脑根本就没有感知到。
六个多月前,在我开始学习MCL编程教材之前,我就在想
如果没有数学能力,我是否能理解它。
但科兹洛夫先生在其教科书的序言中说,这实际上比乍看之下要简单得多。
乍看之下。
而事实上,他的教程中有60-70%的内容我认为我现在已经能够理解了(可能不是第一次),结果是我已经可以编写一些代码。
直到昨天,在我看来,所有复杂的数学计算(我无法理解)都是由程序完成的,而我只需要知道其中的规则。
该程序工作并进行计算。
但我们昨天的谈话使我想到,如果我不学习布尔代数,我的代码将缺乏逻辑。
如果我的代码将缺乏布尔逻辑,我的程序将不能正确工作,或者根本不能工作。
但我昨天瞥了一眼维基百科,意识到--布尔代数和可能的逻辑学--不适合我的思想!我想,这就是我的想法。
昨天你粗略地看了一下我的代码片段,就很快推断出它缺乏布尔逻辑。
如果你不介意的话,请你解释一下你的推理过程,在你得出这个片段没有逻辑的结论之前,你是如何推理的。
如果我理解了,我就会继续前进。 如果我不了解.....,我可能会得出结论,编程是大大超过我的能力的事情。
谢谢你。
如果(ot==0)
如果(Bid==Price)
if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))
if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))
if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))