Спасибо! Поправил в советнике на Ваш вариант. Вот допишу это чудо и выложу в 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 торговых терминала и открывать сделки на каждом терминале в отдельности то может и получиться что-то выгадать...
Может так лучше будет
本当にありがとうございました!!!!
アメリカは泣いている、ヨーロッパも泣いている
将来のことを真剣に考えてるんだなー。
経済的に困窮していると思われる。
♪ And Russia's in the... ♪...フロスティ!
古いハーモニカを棚から出してみよう。
このような危機には慣れていないのです!
ウォッカとベーコンとポテトがあれば。
happy february 23 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!」(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);
}
}
ここでは1つの注文を開いています。 一度に3つ試してみてください、この段階では速くなることはまずありません。
自分で実験したわけではないのですが、もしかしたら、3つの取引端末を並列化し、それぞれの端末で別々に取引を開けば、何か得られるかもしれませんね...。
Код вроде бы такой должен быть... но не проверял...
がエラーになり、ロットが常に0になることが示されました。
をネクロンに。
を発見し、コードをクリーンアップしましたが、まだこのように悪態をついています。
をテクノに。
倍
私のアドバイザーの一人では、このように行っています。
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個持ってますから=)3つは買い、3つは売りです。後でデモを確認しようと思います。せめて、保留中の注文は何とかしてあげたい。
ошибка была, через алерт вывел, показало что лот всегда получается 0.