MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1618

 
Vitaly Muzichenko #:

ライブラリを使わず、この方法でできます

ありがとうございました。

 
MakarFX #:
マーケットが終了したため、TimeCurrent()は変更されません。クリプトで確認すると、週末に動作している

なぜダニに依存させるのか?ボタンはそれらに依存してはいけないのです。

 

こんにちは。

2ヶ月以上、誰も持っていないストラテジーをテストしたい。

容量が大きいので、ブローカーがダウンロードを許可しないのは理解できます。基本ペアのみ。

もしかしたら、サーバーのフォルダーに残っている人がいるかもしれませんね。少なくとも1年間は。

 
この問題は解決されました。
 
こんにちは! ここに書き込むことを決めた...多分誰かが応答します! CodeBaseで...ずっと前にそれがあった...インジケータをレイアウトしました...どちらも名前は覚えていない...また、作者。それの本質はこれだった...手動で水平線を設定...そしてそれは価格が1つおよび他の方向にラインを横断した何回を示しています...とこの価格での統計を示した... Perelapatil 2回66ページが見つからなかった...誰もが覚えているか誰も持つことができます!!!...。PLEASEはとても必要です!!!
 
Sinax #:
こんにちは! ここに書き込むことを決めた...多分誰かが応答します! CodeBaseで...ずっと前にそれがあった...インジケータをレイアウトしました...どちらも名前は覚えていない...また、作者。それの本質はこれだった...手動で水平線を設定...そしてそれは価格が1つおよび他の方向でラインを横断した何回を示しています...そしてこの価格の統計を示す...二度66ページをパイプがそれを見つけることができませんでした...誰もが覚えているか、いずれかを持つことができます!!!!。PLEASE needs it badly !!!!
これじゃない。
?

 
Sergey Gridnev #:
それじゃなくて
?

いいえ、そうではありません...MT4用のものがそうでした...ありがとうございます)))

 

皆さん、ごきげんよう!!!!

あなたは私がグリッドEAのコードを書くのを助けることができる、グリッドを閉じるの原則は、損益分岐価格からプラス利益とすべての注文に利益を持つ単純なすべての注文です。

あるドローダウンレベルでグリッドのminとmaxの注文だけを平均化して決済し、ドローダウンレベルを下げるというアイデアを実現しようとしています。

以下は、グループ注文を開くためのコードの一部です。

if (CountTrade() < MaxOrders)

{

int order_type = FindLastOrderType();

if (order_type == OP_BUY)

{

price = FindLastOrderPrice(OP_BUY)。

if(Ask<= 価格 - (NormalizeDouble(ATR/ DivisorVolatility/Point, 0)*Point))

{

lastlot = NormalizeDouble(Lots()*MathPow( MultiplierParameter, OrdersTotal()), 2)です。

ticket = OrderSend(Symbol(), OP_BUY, lastlot, Ask, slip, 0, 0, "Group Order", Magic, 0, Blue)です。

if (チケット < 1)

プリント(「買い注文エラー」)。

ModifyOrders(OP_BUY)を使用します。

}

}

if (order_type == OP_SELL)

{

price = FindLastOrderPrice(OP_SELL)。

if(Bid>= price + (NormalizeDouble(ATR/ DivisorVolatility/Point, 0)*Point))。

{

lastlot = NormalizeDouble(Lots()*MathPow( MultiplierParameter, OrdersTotal()), 2)です。

ticket = OrderSend(Symbol(), OP_SELL, lastlot, Bid, slip, 0, 0, "Group Order", Magic, 0, Red)です。

if (チケット < 1)

プリント(「売り注文エラー!」)。

ModifyOrders(OP_SELL)です。

}

}

}

注文を修正するコマンドが出てくる部分です。 ここでは、注文の修正を「利益のある全注文と損失のある全注文」と「最小と最大の注文の平均化」で掛け合わせて います。

//+----------------------------------------------------------------------------+

//| 注文の変更

//+----------------------------------------------------------------------------+

void ModifyOrders(int otype)

{

二重

BuyPriceMax = 0, BuyPriceMin = 0, BuyPriceMaxLot = 0, BuyPriceMinLot = 0,

SelPriceMin = 0, SelPriceMax = 0, SelPriceMinLot = 0, SelPriceMaxLot = 0;


イント

BuyPriceMaxTic = 0, BuyPriceMinTic = 0, SelPriceMaxTic = 0, SelPriceMinTic = 0;


二重

op = 0, lt = 0, order_lots = 0;


イント

tk = 0, b = 0, s = 0。

価格 = 0;tp = 0;


for(int i = OrdersTotal() - 1; i >= 0; i--)

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if(OrderMagicNumber() == Magic)

if(OrderSymbol() == Symbol() && OrderType() == otype)

{

op = NormalizeDouble(OrderOpenPrice()、Digits())

lt = NormalizeDouble(OrderLots(), 2);

tk = OrderTicket();

if(otype == OP_BUY)

{

b++;

if(op > BuyPriceMax || BuyPriceMax == 0)

{

BuyPriceMax = op;

BuyPriceMaxLot = lt;

BuyPriceMaxTic = tk;

}

if(op < BuyPriceMin || BuyPriceMin == 0)

{

BuyPriceMin = op;

BuyPriceMinLot = lt;

BuyPriceMinTic = tk;

}

}

if(otype == OP_SELL)

{

s++;

if(op > SelPriceMax || SelPriceMax == 0)

{

SelPriceMax = op;

SelPriceMaxLot = lt;

SelPriceMaxTic = tk;

}

if(op < SelPriceMin || SelPriceMin == 0)

{

SelPriceMin = op;

SelPriceMinLot = lt;

SelPriceMinTic = tk;

}

}

if (otype == OP_BUY || otype == OP_SELL)

{

price += OrderOpenPrice() * OrderLots();

order_lots += OrderLots();

}

}

//*************************************************************//

double AwerageBuyPrice = 0, AwerageSelPrice = 0, avg_price = 0;

if(b >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

購入価格(AwerageBuyPrice) = NormalizeDouble((BuyPriceMax*BuyPriceMaxLot + BuyPriceMin*BuyPriceMinLot)/NormalizeDouble((BuyPriceMax*BuyPriceMaxLot + BuyPriceMin*BuyPriceMinLot)))

(BuyPriceMaxLot + BuyPriceMinLot) + TakeProfitMinMaxOrder* Point(), Digits());

if(s >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

AWARAGESELPRICE = NormalizeDouble((SelPriceMax * SelPriceMaxLot + SelPriceMin * SelPriceMinLot)/)

(SelPriceMaxLot + SelPriceMinLot) - TakeProfitMinMaxOrder* Point(), Digits());

if (Drawdown < DrawdownClosingMinMaxOrder)

avg_price = NormalizeDouble(price / order_lots, Digits);

//*************************************************************//

for(int i = OrdersTotal() - 1; i >= 0; i--)

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if(OrderMagicNumber() == Magic)

if(OrderSymbol() == Symbol())

{

op = NormalizeDouble(OrderOpenPrice()、Digits())

tp = NormalizeDouble(OrderTakeProfit()、Digits())

lt = NormalizeDouble(OrderLots(), 2);

tk = OrderTicket();


if(otype == OP_BUY && b >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

{

if(tk == BuyPriceMaxTic || tk == BuyPriceMinTic)

if(Bid < AwerageBuyPrice && tp != AwerageBuyPrice)

if(!OrderModify(tk, op, OrderStopLoss(), AwerageBuyPrice, 0, clrRed))

Print("OrderModifyエラー#", GetLastError());


if(tk != BuyPriceMaxTic && tk != BuyPriceMinTic && tp != 0)

if(!OrderModify(tk, op, 0, 0, 0, clrRed))

Print("OrderModifyエラー#", GetLastError())

}

if(otype == OP_SELL && s >= 2 && Drawdown >= DrawdownClosingMinMaxOrder)

{

if(tk == SelPriceMaxTic || tk == SelPriceMinTic)

if(Ask > AwerageSelPrice && tp != AwerageSelPrice)

if(!OrderModify(tk, op, OrderStopLoss(), AwerageSelPrice, 0, clrRed))

Print("OrderModifyエラー#", GetLastError());


if(tk != SelPriceMaxTic && tk != SelPriceMinTic && tp != 0)

if(!OrderModify(tk, op, 0, 0, 0, clrRed))

Print("OrderModifyエラー#", GetLastError())

}

if (Drawdown < DrawdownClosingMinMaxOrder)

if (otype == OP_BUY) tp = NormalizeDouble (avg_price + TakeProfitGroupOrder*Point, Digits);

if (otype == OP_SELL) tp = NormalizeDouble (avg_price - TakeProfitGroupOrder*Point, Digits);

{

if(OrderModify(OrderTicket(), OrderOpenPrice(), 0, tp, 0))

Print("Orders modified successfully!");

else Print("Order modification error!");

}

}

}

その結果、許容ドローダウンレベルまでのグループオーダーの修正は通常通り行われ、許容ドローダウンレベル以降は平均化され、予想通りminとmaxがクローズ されることになります。

しかし、ドローダウンが減少したとき、新しいTakeProfitは設定されたくないのです。

以下は、エラーコードを含むログです。

このエラーでどうしたらいいかわからない方、ご安心ください!修正するお手伝いをさせていただきます。

 
EVGENII SHELIPOV #:

皆さん、ごきげんよう!!!!

使用方法

 
MakarFX #:

使用方法

もう少し具体的に教えてください。