//+------------------------------------------------------------------+double getMartinLot(double lot, double arrayLot[]){//ФУНКЦИЯ УПРАВЛЕНИЯ ОБъЕМОМ ТОРГОВ ПО СИСТЕМЕ МАРТИНГЕЙЛАstaticdouble balance_before, balance_after; //ДЛЯ ХРАНЕНИЯ СОСТОЯНИЯ БАЛАНСА ДО И ПОСЛЕ СДЕЛОКstaticdouble save_Lot;
staticint loop;
if(loop == ArraySize(arrayLot))loop = 0;
balance_after = AccountBalance(); //СОХРАНЕНИЕ ТЕКУЩЕГО СОСТОЯНИЯ БАЛАНСА if(balance_after >= balance_before){ //ПРОВЕРКА ИЗМЕНЕНИЯ БАЛАНСА
save_Lot = lot; //ЕСЛИ ОН НЕ ИЗМЕНИЛСЯ ИЛИ СТАЛ БОЛЬШЕ, ТО СБРАСЫВАЕМ ЛОТ ДО БАЗОВОГОloop = 0;
}else{
save_Lot = arrayLot[loop]; //ЕСЛИ СТАЛ МЕНЬШЕ ТО УВЕЛИЧИВАЕМ ЛОТ
loop++;
}
balance_before = balance_after; //СОХРАНЯЕМ СОСТОЯНИЕ БАЛАНСА ПОСЛЕ РАБОТЫreturn(save_Lot);
}
//+------------------------------------------------------------------+
这个问题可能是微不足道的,专家顾问在M1上交易,打开订单的信号进来了,让我们假设止损是空的,订单在sl上关闭。但打开订单的条件仍然存在。
有什么办法能确保订单在同一时刻不再被打开?
OrderSelect()中的数字计数从零开始。而你有1,这意味着你正在寻找第二个订单,虽然你在市场上只有一个,这就是为什么它不工作。
Boris,代码中的一个小更正,我忘了在返回原始地段时增加重置数组的位置。
我不确定我是否把它放在了正确的位置。 在一次亏损后,它可以打开初始手数,如果这一次也是亏损,它可以再次打开初始手数。
而有时在第一次损失后,需要0.4。
我一定是把什么东西放在了错误的地方?
我有一个非常奇怪的方法来处理这个代码。 在失去一个后,它可能会打开第一手,如果这个人再次失去,它可能会打开第一手。
而有时在第一次损失后需要0.4。
我一定是把什么东西放在了错误的地方?
Boris,代码中的一个小更正,我忘了在返回原始地段时增加重设数组的位置。
我已经告诉你为什么它不能正常工作--你把它放在了错误的地方......:)我认为如果你拧开车轮,把它放在行李箱里,你不会走远,虽然看起来车轮在那里,门也关着......:)
我绝对同意你的观点。但我不是在批评你的代码,我只是说我有一个问题),顺便说一下,我又有一个问题,如果你不介意的话--告诉我哪里错了,我真的想了解我做错了什么。
Extern color colorOpenBuy = Blue;
extern colorCloseBuy = Aqua;
extern colorOpenSell = Red;
extern colorCloseSell = Aqua;
void deinit() {
Comment();
}
double Lots_New = Lot;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
if (lFlagUseHourTrade){
if (! (Hour()>=nFromHourTrade && Hour()<=nToHourTrade){
Comment("交易的时间还没有到来!");
return(0);
我把它粘贴在这里,就像你说的,在函数Start之前,但在编译时它说'Lot' - 初始化预期D:\MetaTraderexperts\Prostoj_2.mq4 (39, 20)
请告诉我这可能是什么。
检查新蜡烛的开口。如果是新的,你就开,如果是旧的,你就不开。
我绝对同意你的观点。但我不是在批评你的代码,我只是说我有一些问题。 顺便说一下,我还有一个问题,如果你不介意的话--告诉我哪里错了,我真的想知道我做错了什么。
外部颜色 colorOpenBuy = Blue;
外部颜色 colorCloseBuy = Aqua;
外部颜色OpenSell = 红色。
外部颜色 colorCloseSell = Aqua;
void deinit() {
评论(")。
}
double Lots_New = Lot;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
如果(lFlagUseHourTrade){
如果(!(Hour()>=nFromHourTrade && Hour()<=nToHourTrade)){
评论("贸易的时间还没有到来!")。
return(0);
我按照你说的在这里插入了它,在Start函数之前,但在编译时它说'Lot'--预期的初始化D:\MetaTraderexperts\Prostoj_2.mq4 (39, 20)
请告诉我这可能是什么。
在你的代码中,Lot在哪里被初始化?
接下来,只有在检查了麋鹿之后,才能像之前写的那样改变Lots_New,或者给它赋值 = Lot。
是啊...我对数组感到很困惑...试图用电感数据填充一个数组,这个小函数是一个boo-o-o-o的小僵局......你能告诉我我做错了什么吗?
我这样称呼它。
SaveDataIND(TempIND, 20);
问题出在哪里?是啊...我对数组感到很困惑...试图用电感数据填充一个数组,这个小函数是一个boo-o-o-o的小僵局......你能告诉我我做错了什么吗?
我这样称呼它。
问题到底出在哪里?你的狗在向函数传递参数 时,如果你像SaveDataIND(double TempIND[])那样传递
double TempIND[ ]实际上是一个新的函数数组,但没有改变参数的权利,尝试SaveDataIND(double& TempIND[])。