Спасибо! Поправил в советнике на Ваш вариант. Вот допишу это чудо и выложу в Code Base как свое первое (более-менее) серьезное творение!=)) Система, по которой пишу советника называется Мутеки, только немного с моими дополнениями(по управлению позициями). Хорошо, что есть хотя бы индикатор, который построит все эти трендовые=)))
Только еще возник вопрос. Как открыть три позиции одновременно (или приблизительно по одной котировке)?Я делал следующим образом. Правильно ли, или есть другие способы? Отложенниками не получится=(( Маленькое расстояние иногда слишком:(
if(b1==0 && !IsTradeContextBusy()) { if(Low[0]<HHL_1 && Bid>=HHL_1 && trade_buy==true) { ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage*PointX,sl_b,BuyTarget1,"lot_1_buy",Magic,0,Lime); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("lot_1_buy order opened : ",OrderOpenPrice()); b1=1; } else Print("Error opening BUY order : ",GetLastError());
//int round = 2; int total = OrdersHistoryTotal(); double spread = MarketInfo(Symbol(), MODE_SPREAD);
for (int i = 0; i < total; i++) { OrderSelect(i, SELECT_BY_POS, MODE_HISTORY); if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) { if (OrderProfit() > 0) { result = Lots;
} else { result = OrderLots() * koeff;
} } } result = NormalizeDouble(result, round); if (result > maxlot) { result = maxlot; } if (result < minlot) { result = minlot; } RefreshRates(); return(result); }
здесь Вы один ордер открываете. попробуйте сразу 3, быстрее наврятли получиться на данном этапе.
Сам не экспериментировал, но, возможно, если запараллелить 3 торговых терминала и открывать сделки на каждом терминале в отдельности то может и получиться что-то выгадать...
Может так лучше будет
非常感谢您的帮助!!!。
美国在哭泣,欧洲也在哭泣!
他们正在认真地思考未来!
他们认为自己陷入了财务困境。
? 和俄罗斯的在... ?......冰冷的!
让我们把旧口琴从架子上拿下来。
我们不习惯这种危机!
如果有伏特加、培根和土豆就好了。
我们会度过这一切的,看在上帝的份上!!!。
2月23日快乐 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Спасибо! Поправил в советнике на Ваш вариант. Вот допишу это чудо и выложу в Code Base как свое первое (более-менее) серьезное творение!=)) Система, по которой пишу советника называется Мутеки, только немного с моими дополнениями(по управлению позициями). Хорошо, что есть хотя бы индикатор, который построит все эти трендовые=)))
Только еще возник вопрос. Как открыть три позиции одновременно (или приблизительно по одной котировке)?Я делал следующим образом. Правильно ли, или есть другие способы? Отложенниками не получится=(( Маленькое расстояние иногда слишком:(
if(b1==0 && !IsTradeContextBusy())
{
if(Low[0]<HHL_1 && Bid>=HHL_1 && trade_buy==true)
{
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage*PointX,sl_b,BuyTarget1,"lot_1_buy",Magic,0,Lime);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("lot_1_buy order opened : ",OrderOpenPrice());
b1=1;
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
}
你在这里开的是一个订单。 同时尝试3个,在这个阶段不太可能变快。
我自己没有做过实验,但也许如果你将3个交易终端并行化,并在每个终端中分别打开交易,你可能会有所收获......。
Код вроде бы такой должен быть... но не проверял...
有一个错误,警报显示该批次总是变成了0。
到Necron。
在代码中发现了一个错误,并将其清理干净,但它仍然像这样发誓。
到技术。
(双倍)
在我的一个顾问中是这样做的。
double lt = getLots();//эта строчка в переменных, в ордерсенд пишем lt,
double getLots() { // это или перед start или после всего кода
double minlot = MarketInfo(Symbol(), MODE_MINLOT);
double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
int round;
if(minlot==0.01)round=2;
if(minlot==0.1) round=1;
double koeff=2;
double result=Lots;
//int round = 2;
int total = OrdersHistoryTotal();
double spread = MarketInfo(Symbol(), MODE_SPREAD);
for (int i = 0; i < total; i++) {
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
if (OrderProfit() > 0) {
result = Lots;
} else {
result = OrderLots() * koeff;
}
}
}
result = NormalizeDouble(result, round);
if (result > maxlot) {
result = maxlot;
}
if (result < minlot) {
result = minlot;
}
RefreshRates();
return(result);
}
Techno,谢谢你的提示!)StatBars 和Necron 也谢谢你。
但为了确保马丁格尔的工作,我重新修改了一下代码))
здесь Вы один ордер открываете. попробуйте сразу 3, быстрее наврятли получиться на данном этапе.
Сам не экспериментировал, но, возможно, если запараллелить 3 торговых терминала и открывать сделки на каждом терминале в отдельности то может и получиться что-то выгадать...
我理解,我有6个=)三个买入,三个卖出。我稍后会试着检查一下演示的情况。至少,我将尝试对待处理的订单做一些事情。
ошибка была, через алерт вывел, показало что лот всегда получается 0.