double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // лучшее предложение на покупкуdouble Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // лучшее предложение на продажуdouble SL = NormalizeDouble(StopLoss,_Digits);
double TP = NormalizeDouble(TakeProfit,_Digits);
bool Buy_Condition_1=...;
bool Buy_Condition_2=...;
bool Buy_Condition_3=...;
а сам
bool PositionModify(conststring_Symbol,constdouble SL,constdouble TP)
{
if(PositionSelect(_Symbol)==true) // есть открытая позиция
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
Alert("SL!!!");
return; // закрыл
}
MqlTradeRequest request={0};
MqlTradeResult result ={0};
mrequest.action=TRADE_ACTION_SLTP;
mrequest.symbol=_Symbol;
mrequest.magic =EA_Magic;
mrequest.sl =StopLoss;
mrequest.tp =TakeProfit;
OrderSend(mrequest,mresult);
if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
{
Alert("Стопка прошла#:",mresult.order,"!!");
}
else
{
Alert("Стопка не прошла - код ошибки:",GetLastError());
return(false);
}
return(true);
}
//----------------------------------------------------------------- if(Buy_Close_1 || Buy_Close_2)
после отсылки ордера на покупку.
Пока при компиляции борюсь с "лишними" скобками фигурными.
Вопрос дубль 2 - правильно ли я расположил модификацию позиции?
И вообще, "классический" ли он имеет код (при условии, что он верный)?
Стоплос и тейкпрофит в пункти.*Понт = 0.002-ето тейк,ну надо и к добавит.
PositionModify(Symbol(),NormalizeDouble(Bid - SL*_Point,4),TP*_Point);
PositionModify(Symbol(),NormalizeDouble((Bid - SL*_Point),4),NormalizeDouble((Bid + TP*_Point),4));
职位修改 写在哪里?
在买入和卖出条件前写入止损和止盈数据
代码中存在一个错误。
谢谢你。它已经消失了。
定位如何?
问题是,如果我在一些地方加上大括号,在编译时就会产生 - 'PositionModify' -函数 只能在全局范围内声明
这次我相信了,即 "位置修改器 "本身应该放在 int OnInit()之前 ,条件(if)放在购买部分之后?
把代码给我,我不明白你的意思。
PS:你应该在全局层面上描述PositionModify()函数,也就是在函数 所在的层面上。OnInit(), OnTick(), OnDeinit()。
纠正了。它的编译没有错误。没有在测试器中测试。你的代码是不可读的。习惯于代码布局,就像我更正的版本一样。
谢谢你(虽然我不太明白除了布局之外还有什么变化)。
第2行中的 "SMB "是什么意思,它在哪里被定义的值? 你不能写_符号吗?
mrequest.action = TRADE_ACTION_SLTP; mrequest.symbol = smb; mrequest.magic = EA_Magic; mrequest.sl = SL; mrequest.tp = TP;
你好,你能告诉我,如果 我的终端电脑关闭,信号上的订单是否会被执行?
下午好。
您能否建议如何最好地实现以下内容:专家启动后,初始化时画出(在图表区域?其他地方?),例如TextBox和Button。 专家处理ticks。如果一个用户输入了 在TextBox中输入一些数值并按下Button,Tick处理程序就会看到这个新数据。
换句话说--通过Windows GUI元素组织用户数据与专家顾问的互动交流的正确(更简单、更好)方式是什么?CChartObjectEdit和CChartObjectButton是,不好意思,是某种 "色情"。
谢谢你。对不起,如果问题很简单,请你打探一下答案在哪里!
酷。
1.代码现在可以编译了。 第一个变化。
太糟糕了,编译和可操作性不是一回事)
为什么在测试器中,代码设置了止损和盈利,但在图表中却没有?
我开始边走边发愁了)))。
为什么在测试器中,代码设置了止损和盈利,但在图表中却没有?
我开始生气了)))。
Lester:Zdes把一个模板,里面有一个修改,并显示如何polzuvatsya。
https://www.mql5.com/ru/forum/6343/page73
如果你不想这样做,你就必须正确地阅读这些变量。
你好,你能告诉我,如果我的终端电脑关闭,信号上的订单是否会被执行?