1添付ファイルこんにちは、
私が支払ったTrade-Manager-EAの再コーディングに興味があるかもしれないCoderを見つけようとします。
これまで非常に有名なシニアメンバーのROOIKOOL(これも非常に優秀なプログラマー)が私のためにこのEAをコーディングしました。
しかし彼はもはやEAにいくつかの変更を加えていませんでした。
そのため、本来あるべき状態では正しく機能しない2-3の機能があります。
これがコードです:
#property copyright rooicolによってコーディングされています
#import stdlib.ex4
文字列ErrorDescription(int ErrorCode);
extern int DefaultSL = 400。
extern bool HighLowSL = True。
extern int BarCount = 3。
extern int Gap = 100。
extern int HighLowSafetyPoints = 100;
extern int DefaultTP = 500。
extern int DefaultCPPercent = 50。
extern bool HardSLTPActive = False。
extern int HardSLTPDistance = 400。
extern int AutoBEPoints = 200。
extern bool TrendLineSL = False。
extern int TrendLineSLDistance = 40;
extern bool MaintainSession = False;
extern int MyMagicNumber = 555;
extern bool ObjectOrders = True;
extern bool ObjectStopOrders = False。
extern int SendMultipleOrders = 1;
extern int WingdingObjectOrders = 251;
extern int DistancePendingOrder = 40;
extern double Lots = 0。
extern double RiskPercent = 2。
extern double CommissionPerLot = 0。
extern int TradeObjectsFontSize = 8;
extern int TradeWingDingFontSize = 35;
extern int TradeObjectsXDistance = 10。
extern int TradeObjectsYDistance = -34;
extern int TradeObjectsXSpace = 30。
extern int TradeObjectsYSpace = 28。
extern bool DeleteOnly = True。
extern bool ShowConfirm = False。
外の色BuyMarketColour = Green。
外部カラーBuyLimitColour = Green。
外の色BuyStopColour =緑。
外部色CloseColour =グレー。
extern color SellMarketColour =マルーン。
外部色SellLimitColour =マルーン。
extern color SellStopColour =マルーン。
extern int LineStyleEntry = STYLE_SOLID;
extern int LineStyleSL = STYLE_DASH;
extern int LineStyleTP = STYLE_DOT;
extern int LineStyleCP = STYLE_DASHDOT;
外部色Colour1 =オレンジ。
外の色Colour2 = DarkGray。
外部色Colour3 =ライム。
外の色Colour4 = Green。
外の色Colour5 =青。
外部色PendingColour = SkyBlue;
extern bool UseWingDings = False。
extern int OrderLineThickness = 5;
extern int OrderLineLength = 10;
外の色EntryColour =青。
外の色SLColour =オレンジ。
外の色TPColour = DarkGray。
外の色CPColour =ライム。
extern int Wingding = 74;
extern bool RunInfiniteLoop = False;
extern int RunIntervalMS = 100。
bool FirstRun = True。
bool AutoBE = False。
int start()
{
while(IsStopped()== False)
{
RefreshRates();
if(MyMagicNumber == 0)
コメント(MyMagicNumberを0にしてはいけません!);
//---------履歴取引レベルの削除----------------------------------- -------
for(int i = OrdersHistoryTotal() - 10; ilt; OrdersHistoryTotal(); i )
{
OrderSelect(i、SELECT_BY_POS、MODE_HISTORY);
int TicketNo = OrderTicket();
ObjectDelete(取引管理EA:Line Entry TicketNo);
ObjectDelete(取引管理EA:Line SL TicketNo);
ObjectDelete(取引管理EA:Line TP TicketNo);
ObjectDelete(取引管理EA:Line CP TicketNo);
ObjectDelete(取引管理EA:距離入力 チケット番号);
ObjectDelete(取引管理EA:距離SL チケット番号);
ObjectDelete(取引管理EA:距離TP チケット番号);
ObjectDelete(取引管理EA:距離CP チケット番号);
ObjectDelete(取引管理EA:トレンドライン チケット番号);
ObjectDelete(取引管理EA:チケット番号なし チケット番号)
ObjectDelete(取引管理EA:チケット番号SL チケット番号)
ObjectDelete(取引管理EA:チケット番号TP チケット番号)
ObjectDelete(取引管理EA:チケット番号CP チケット番号)
ObjectDelete(取引管理EA:Wingding Entry TicketNo);
ObjectDelete(取引管理EA:Wingding SL TicketNo);
ObjectDelete(取引管理EA:Wingding TP TicketNo);
ObjectDelete(取引管理EA:Wingding CP TicketNo);
GlobalVariableDel(取引管理EA:Line CP TicketNo);
}
//---------取引レベルの作成------------------------------------ ------
int j = 0。
静的ブールTrailActive。
(i = OrdersTotal() - 1; igt; = 0; i--)
{
OrderSelect(i、SELECT_BY_POS);
if(OrderSymbol()== Symbol()OrderMagicNumber()!= MyMagicNumber)
{
j ;
TicketNo = OrderTicket();
文字列TicketNoStr = DoubleToStr(TicketNo、0);
switch(OrderType())
{
ケース0:int Direction = 1。 double Price = Bid; bool Pending = False;ブレーク;
ケース2:
ケース4:方向= 1。価格=入札double PendingPrice = Ask;保留中= True。ブレーク;
ケース1:Direction = -1。価格=お願いします。保留中= False。ブレーク;
ケース3:
ケース5:方向= −1。価格=お願いします。 PendingPrice = Bid;保留中= True。
}
if(j == 1)
カラーカラー=カラー1。
if(j == 2)
カラー=カラー2。
if(j == 3)
カラー=カラー3。
if(j == 4)
色=色4。
if(jgt; = 5)
色=色5。
if(UseWingDings == False)
{
ObjectCreate(取引管理EA:Line Entry TicketNo、OBJ_HLINE、0、OrderOpenTime()、OrderOpenPrice());
ObjectSet(取引管理EA:Line Entry TicketNo、OBJPROP_COLOR、Color);
ObjectSet(取引管理EA:Line Entry TicketNo、OBJPROP_STYLE、LineStyleEntry);
double LineEntryPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Entry TicketNo、OBJPROP_PRICE1)、Digits);
ObjectCreate(取引管理EA:チケット番号なし+チケット番号、OBJ_TEXT、0、時間[80]、LineEntryPrice)。
ObjectSetText(取引管理EA:チケットなしエントリ TicketNo、TicketNoStr、10、Arial、Color)
ObjectMove(取引管理EA:チケット番号なし+チケット番号0、0、時間[80]、LineEntryPrice)。
}
それ以外の
{
ObjectCreate(取引管理EA:Line Entry TicketNo、OBJ_TREND、0、OrderOpenTime()、OrderOpenPrice()、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、OrderOpenPrice());
ObjectSet(取引管理EA:Line Entry TicketNo、OBJPROP_WIDTH、OrderLineThickness);
ObjectSet(取引管理EA:Line Entry TicketNo、OBJPROP_COLOR、EntryColour);
ObjectSet(取引管理EA:Line Entry TicketNo、OBJPROP_RAY、False);
LineEntryPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Entry TicketNo、OBJPROP_PRICE1)、Digits);
//ObjectCreate(取引管理EA:Wingding Entry TicketNo、OBJ_TEXT、0、OrderOpenTime()、OrderOpenPrice())
//ObjectSetText(取引管理EA:Wingding Entry TicketNo、CharToStr(Wingding)、10、WingDings、EntryColour);
//ObjectMove(取引管理EA:Wingding Entry TicketNo、0、OrderOpenTime()、LineEntryPrice)
}
if(OrderType()lt; = 1)
{
ObjectMove(取引管理EA:Line Entry TicketNo、0、OrderOpenTime()、OrderOpenPrice());
ObjectMove(取引管理EA:Line Entry TicketNo、1、Time [iBarShift(Symbol、)、Period()、OrderOpenTime()) OrderLineLength]、OrderOpenPrice())
}
if(OrderType()gt; = 2)
{
ObjectMove(取引管理EA:Line Entry TicketNo、0、OrderOpenTime()、LineEntryPrice);
ObjectMove(取引管理EA:Line Entry TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、LineEntryPrice);
}
if(保留中== True)
double PriceEntry = PendingPrice。
それ以外の
PriceEntry = Price;
int EntryDistance =((PriceEntry-LineEntryPrice)* Direction)/Point;
ストリングEntryDistanceStr = DoubleToStr(EntryDistance、0);
if(UseWingDings == True)
color DistanceEntryColour = EntryColour;
それ以外の
DistanceEntryColour =色;
ObjectCreate(取引管理EA:距離入力 TicketNo、OBJ_TEXT、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 10]、LineEntryPrice);
ObjectSetText(取引管理EA:距離入力+チケット番号、入力距離Str、13、Aial、DistancyEntryColor)。
ObjectMove(取引管理EA:距離入力 TicketNo、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 10]、LineEntryPrice);
if(HighLowSL == True)
{
if(Direction == 1)
{
double LineSLInitialPrice = Low [iLowest(Symbol()、Period()、MODE_LOW、BarCount)] - (Gap * Point);
if(LineSLInitialPricegt;(OrderOpenPrice() - (HighLowSafetyPoints * Point))))
LineSLInitialPrice =(OrderOpenPrice() - (HighLowSafetyPoints * Point));
}
if(Direction == - 1)
{
LineSLInitialPrice = High [iHighest(シンボル()、ピリオド()、MODE_HIGH、BarCount)] (ギャップ*ポイント);
if(LineSLInitialPricelt;(OrderOpenPrice() (HighLowSafetyPoints * Point))))
LineSLInitialPrice =(OrderOpenPrice() (HighLowSafetyPoints * Point));
}
}
それ以外の
LineSLInitialPrice = OrderOpenPrice() - (Direction * DefaultSL * Point);
if(OrderStopLoss()!= 0)
LineSLInitialPrice = OrderStopLoss() (HardSLTPDistance * Point * Direction);
if(UseWingDings == False)
{
ObjectCreate(取引管理EA:Line SL TicketNo、OBJ_HLINE、0、OrderOpenTime()、LineSLInitialPrice);
ObjectSet(取引管理EA:Line SL TicketNo、OBJPROP_COLOR、Color)。
ObjectSet(取引管理EA:Line SL TicketNo、OBJPROP_STYLE、LineStyleSL)
double LineSLPrice = NormalizeDouble(ObjectGet(取引管理EA:行SL チケット番号、OBJPROP_PRICE1)、数字);
ObjectMove(取引管理EA:Line SL TicketNo、0、OrderOpenTime()、LineSLPrice);
ObjectCreate(取引管理EA:チケット番号SL チケット番号、OBJ_TEXT、0、時間[80]、LineSLPrice);
ObjectSetText(取引管理EA:Ticket No SL TicketNo、TicketNoStr、10、Arial、Color)。
ObjectMove(取引管理EA:Ticket No SL TicketNo、0、Time [80]、LineSLPrice);
}
それ以外の
{
ObjectCreate(取引管理EA:Line SL TicketNo、OBJ_TREND、0、OrderOpenTime()、LineSLInitialPrice、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、LineSLInitialPrice);
ObjectSet(取引管理EA:Line SL TicketNo、OBJPROP_WIDTH、OrderLineThickness);
ObjectSet(取引管理EA:ラインSL チケット番号、OBJPROP_COLOR、SLColour)
ObjectSet(取引管理EA:Line SL TicketNo、OBJPROP_RAY、False)。
LineSLPrice = NormalizeDouble(ObjectGet(取引管理EA:Line SL TicketNo、OBJPROP_PRICE1)、数字);
ObjectMove(取引管理EA:Line SL TicketNo、0、OrderOpenTime()、LineSLPrice);
ObjectMove(取引管理EA:Line SL TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、LineSLPrice);
//ObjectCreate(取引管理EA:Wingding SL TicketNo、OBJ_TEXT、0、OrderOpenTime()、LineSLInitialPrice);
//ObjectSetText(取引管理EA:Wingding SL TicketNo、CharToStr(Wingding)、10、WingDings、SLColour);
//ObjectMove(取引管理EA:Wingding SL TicketNo、0、OrderOpenTime()、LineSLPrice);
}
double SLDistance =((LineSLPrice-OrderOpenPrice())* Direction)/(Point);
ストリングSLDistanceStr = DoubleToStr(SLDistance、0)。
if(UseWingDings == True)
カラー距離SLColour = SLColour。
それ以外の
DistanceSLColour =色;
ObjectCreate(取引管理EA:距離SL チケット番号、OBJ_TEXT、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 20]、LineSLPrice);
ObjectSetText(取引管理EA:距離SL TicketNo、SLDistanceStr、13、Arial、DistanceSLColour);
ObjectMove(取引管理EA:距離SL チケット番号、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 20]、LineSLPrice)
if(TrendLineSL == TrueOrderType()lt; = 1)
{
if(OrderType()== 0)
{
double TrendLinePrice1 = Low [0] - (250 *ポイント)。
double TrendLinePrice2 = Low [0] - (75 *ポイント)。
}
if(OrderType()== 1)
{
TrendLinePrice1 = High [0] (250 * Point);
TrendLinePrice2 = High [0] (75 * Point);
}
ObjectCreate(取引管理EA:トレンドライン チケット番号、OBJ_TREND、0、時間[30]、TrendLinePrice1、時間[0]、TrendLinePrice2);
ObjectSet(取引管理EA:Trend Line TicketNo、OBJPROP_RAY、True);
double TrendLineCurrentValue = ObjectGetValueByShift(取引管理EA:Trend Line TicketNo、0) - (TrendLineSLDistance * Point * Direction);
ObjectMove(取引管理EA:Line SL TicketNo、0、OrderOpenTime()、TrendLineCurrentValue);
ObjectMove(取引管理EA:Line SL TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、TrendLineCurrentValue);
}
if(TrendLineSL == False)
ObjectDelete(取引管理EA:トレンドライン チケット番号);
if(== True OrderType()lt; = 1EntryDistance gt; = AutoBEPoints)
{
ObjectMove(取引管理EA:Line SL TicketNo、0、OrderOpenTime()、OrderOpenPrice());
ObjectMove(取引管理EA:Line SL TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、OrderOpenPrice());
}
if(TrailActive == TrueOrderType()lt; = 1)
{
if(OrderType()== 0)
double TrailMovePrice = iLow(Symbol()、240,1) - (Gap * Point);
if(OrderType()== 1)
TrailCom価格=高値(シンボル()、240,1) (ギャップ*ポイント)
if((TrailMovePrice-LineSLPrice)* Directiongt;(Point2))
{
ObjectMove(取引管理EA:Line SL TicketNo、0、OrderOpenTime()、TrailMovePrice);
ObjectMove(取引管理EA:Line SL TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、TrailMovePrice);
}
ObjectMove(取引管理EA:Line TP TicketNo、0、OrderOpenTime()、OrderOpenPrice() (Point * 10000 * Direction));
ObjectMove(取引管理EA:Line TP TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、OrderOpenPrice() (Point * 10000 * Direction));
}
if(OrderTakeProfit()!= 0)
double LineTPInitialPrice = OrderTakeProfit() - (HardSLTPDistance * Point * Direction);
それ以外の
LineTPInitialPrice = OrderOpenPrice() (Direction * DefaultTP * Point);
if(UseWingDings == False)
{
ObjectCreate(取引管理EA:Line TP TicketNo、OBJ_HLINE、0、OrderOpenTime()、LineTPInitialPrice);
ObjectSet(取引管理EA:ラインTP チケット番号、OBJPROP_COLOR、色);
ObjectSet(取引管理EA:Line TP TicketNo、OBJPROP_STYLE、LineStyleTP);
double LineTPPrice = NormalizeDouble(ObjectGet(取引管理EA:Line TP TicketNo、OBJPROP_PRICE1)、Digits);
ObjectMove(取引管理EA:Line TP TicketNo、0、OrderOpenTime()、LineTPPrice);
ObjectCreate(取引管理EA:チケットなしTP チケット番号、OBJ_TEXT、0、時間[80]、LineTPPrice);
ObjectSetText(取引管理EA:Ticket No TP TicketNo、TicketNoStr、10、Arial、Color);
ObjectMove(取引管理EA:Ticket No TP TicketNo、0、Time [80]、LineTPPrice);
}
それ以外の
{
ObjectCreate(取引管理EA:Line TP TicketNo、OBJ_TREND、0、OrderOpenTime()、LineTPInitialPrice、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、LineTPInitialPrice)
ObjectSet(取引管理EA:ラインTP TicketNo、OBJPROP_WIDTH、OrderLineThickness);
ObjectSet(取引管理EA:ラインTP チケット番号、OBJPROP_COLOR、TPColour);
ObjectSet(取引管理EA:ラインTP TicketNo、OBJPROP_RAY、False)。
LineTPPrice = NormalizeDouble(ObjectGet(取引管理EA:Line TP TicketNo、OBJPROP_PRICE1)、数字);
ObjectMove(取引管理EA:Line TP TicketNo、0、OrderOpenTime()、LineTPPrice);
ObjectMove(取引管理EA:Line TP TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、LineTPPrice);
//ObjectCreate(取引管理EA:Wingding TP TicketNo、OBJ_TEXT、0、OrderOpenTime()、LineTPInitialPrice);
//ObjectSetText(取引管理EA:Wingding TP TicketNo、CharToStr(Wingding)、10、WingDings、TPColour);
//ObjectMove(取引管理EA:Wingding TP TicketNo、0、OrderOpenTime()、LineTPPrice);
}
double TPDistance =((LineTPPrice-OrderOpenPrice())* Direction)/(Point);
ストリングTPDistanceStr = DoubleToStr(TPDistance、0);
if(UseWingDings == True)
カラーDistanceTPColour = TPColour。
それ以外の
DistanceTPColour =カラー。
ObjectCreate(取引管理EA:距離TP チケット番号、OBJ_TEXT、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 20]、LineTPPrice)
ObjectSetText(取引管理EA:距離TP TicketNo、TPDistanceStr、13、Arial、DistanceTPColour);
ObjectMove(取引管理EA:距離TP TicketNo、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 20]、LineTPPrice);
if(DefaultCPPercentgt; 0)
{
double LineCPInitialPrice = GlobalVariableGet(取引管理EA:Line CP TicketNo);
if(LineCPInitialPrice == 0)
LineCPInitialPrice = LineTPPrice (Direction * 20 * Point);
if(UseWingDings == false)
{
ObjectCreate(取引管理EA:Line CP TicketNo、OBJ_HLINE、0、OrderOpenTime()、LineCPInitialPrice);
オブジェクトセット(取引管理EA:ラインCP チケット番号、OBJPROP_COLOR、色);
ObjectSet(取引管理EA:Line CP TicketNo、OBJPROP_STYLE、LineStyleCP)
double LineCPPrice = NormalizeDouble(ObjectGet(取引管理EA:ラインCP チケット番号、OBJPROP_PRICE1)、数字)
ObjectMove(取引管理EA:Line CP TicketNo、0、OrderOpenTime()、LineCPPrice);
ObjectCreate(取引管理EA:チケットなしCP チケットなし、OBJ_TEXT、0、時間[80]、LineCPPrice);
ObjectSetText(取引管理EA:チケットなしCP TicketNo、TicketNoStr、10、Arial、Color)。
ObjectMove(取引管理EA:チケットなしCP チケット番号、0、時間[80]、LineCPPrice);
}
それ以外の
{
ObjectCreate(取引管理EA:Line CP TicketNo、OBJ_TREND、0、OrderOpenTime()、LineCPInitialPrice、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、LineCPInitialPrice);
ObjectSet(取引管理EA:ラインCP チケット番号、OBJPROP_WIDTH、OrderLineThickness)
ObjectSet(取引管理EA:ラインCP チケット番号、OBJPROP_COLOR、CPカラー)
ObjectSet(取引管理EA:ラインCP チケット番号、OBJPROP_RAY、False)。
LineCPPrice = NormalizeDouble(ObjectGet(取引管理EA:ラインCP チケット番号、OBJPROP_PRICE1)、数字);
ObjectMove(取引管理EA:Line CP TicketNo、0、OrderOpenTime()、LineCPPrice);
ObjectMove(取引管理EA:ラインCP チケット番号、1、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、LineCPPrice);
//ObjectCreate(取引管理EA:Wingding CP TicketNo、OBJ_TEXT、0、OrderOpenTime()、LineCPInitialPrice);
//ObjectSetText(取引管理EA:Wingding CP TicketNo、CharToStr(Wingding)、10、WingDings、CPColour);
//ObjectMove(取引管理EA:Wingding CP TicketNo、0、OrderOpenTime()、LineCPPrice);
}
ダブルCP距離=((LineCPPrice-OrderOpenPrice())*方向)/(ポイント);
文字列CPDistanceStr = DoubleToStr(CPDistance、0)。
if(UseWingDings == True)
色距離CP色= CP色。
それ以外の
DistanceCPColour =カラー。
ObjectCreate(取引管理EA:距離CP チケット番号、OBJ_TEXT、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 10]、LineCPPrice)
ObjectSetText(取引管理EA:距離CP TicketNo、CPDistanceStr、13、Arial、DistanceCPColour);
ObjectMove(取引管理EA:距離CP チケット番号、0、時間[iBarShift(Symbol()、Period()、OrderOpenTime()) 10]、LineCPPrice)
GlobalVariableSet(取引管理EA:Line CP TicketNo、LineCPPrice);
int ClosePercent = StrToDouble(ObjectDescription(取引管理EA:Line CP TicketNo));
if(ClosePercent == 0)
ObjectSetText(取引管理EA:Line CP TicketNo、DoubleToStr(DefaultCPPercent、0));
}
それ以外の
{
ObjectDelete(取引管理EA:距離CP チケット番号);
ObjectDelete(取引管理EA:チケット番号CP チケット番号)
ObjectDelete(取引管理EA:Line CP TicketNo);
GlobalVariableDel(取引管理EA:Line CP TicketNo);
}
//--------- SLとTPの変更----------------------------------- -------
double LineSLPriceAdjusted = LineSLPrice-(Direction * HardSLTPDistance * Point);
double LineTPPriceAdjusted = LineTPPrice (Direction * HardSLTPDistance * Point);
if(MathAbs(OrderOpenPrice() - LineEntryPrice)gt;(Point2))
bool EntryDifference = True;
それ以外の
EntryDifference = False。
if(MathAbs(OrderStopLoss() - LineSLPriceAdjusted)gt;(Point2))
bool SLDifference = True;
それ以外の
SLDifference = False。
if(MathAbs(OrderTakeProfit() - LineTPPriceAdjusted)gt;(Point2))
bool TPDifference = True;
それ以外の
TPDifference = False。
if((HardSLTPActive == True(SLDifference == True || TPDifference == True))||(EntryDifference == TrueOrderType()gt; = 2))
{
OrderModify(TicketNo、LineEntryPrice、LineSLPriceAdjusted、LineTPPriceAdjusted、0);
スリープ(250)
}
OrderSelect(i、SELECT_BY_POS);
RefreshRates();
//--------- EA CLOSE ------------------------------------- -----
if((((Price-LineSLPrice)* Direction)lt;(Point2))
bool SLHit = True;
それ以外の
SLHit = False
if((((LineTPPrice-Price)* Direction)lt;(Point2))
bool TPHit = True;
それ以外の
TPHit = False。
if((((LineCPPrice-Price)* Direction)lt;(Point2))
bool CPHit = True;
それ以外の
CPHit = False
if((((HardSLTPActive == TrueHardSLTPDistancegt; 0)||(HardSLTPActive == False))SLHit == TrueOrderType()lt; = 1)
RunClose(TicketNo、LineSLPrice、OrderLots()、EA CLOSE);
if((((HardSLTPActive == TrueHardSLTPDistancegt; 0)||(HardSLTPActive == False))TPHit == TrueOrderType()lt; = 1)
RunClose(TicketNo、LineTPPrice、OrderLots()、EA CLOSE);
if(DefaultCPPercentgt; 0CPHit == TrueOrderType()lt; = 1)
{
double LotPoint = MarketInfo(Symbol()、MODE_LOTSTEP);
double CloseLots = MathRound((OrderLots()* ClosePercent * 0.01)/LotPoint)* LotPoint;
RunClose(TicketNo、LineCPPrice、CloseLots、EA CLOSE);
}
}
}
//- - - - -保留中の注文 - - - - - - - - - - - - - - - - - - - --------------------
for(i = 0; ilt; 10; i )
{
double LineBuyLimitPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Buy Limit i、OBJPROP_PRICE1)、数字);
if(LineBuyLimitPrice!= 0)
{
ObjectMove(取引管理EA:Line Buy Limit i、0、TimeCurrent()、LineBuyLimitPrice);
ObjectMove(取引管理EA:Line Buy Limit i、1、Time [10]、LineBuyLimitPrice);
ObjectMove(取引管理EA:Ticket No Buy Limit i、0、時間[80]、LineBuyLimitPrice);
//ObjectMove(取引管理EA:Wingding Buy Limit i、0、TimeCurrent()、LineBuyLimitPrice);
double BuyLimitDistance =(Ask-LineBuyLimitPrice)/(Point);
文字列BuyLimitDistanceStr = DoubleToStr(BuyLimitDistance、0);
ObjectSetText(取引管理EA:Distance Buy Limit i、BuyLimitDistanceStr、13、Arial、PendingColour);
ObjectMove(取引管理EA:距離買い制限 i、0、時間[10]、LineBuyLimitPrice);
if((Ask-LineBuyLimitPrice)lt;(Point2))
{
SendBuyMarketOrder(True);
ObjectDelete(取引管理EA:Line Buy Limit i);
ObjectDelete(取引管理EA:チケット購入制限なし i)
ObjectDelete(取引管理EA:買値の上限 i);
ObjectDelete(取引管理EA:Wingding Buy Limit i);
}
}
それ以外の
{
ObjectDelete(取引管理EA:チケット購入制限なし i)
ObjectDelete(取引管理EA:買値の上限 i);
ObjectDelete(取引管理EA:Wingding Buy Limit i);
}
double LineBuyStopPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Buy Stop i、OBJPROP_PRICE1)、数字)
if(LineBuyStopPrice!= 0)
{
ObjectMove(取引管理EA:Line Buy Stop i、0、TimeCurrent()、LineBuyStopPrice);
ObjectMove(取引管理EA:Line Buy Stop i、1、時間[10]、LineBuyStopPrice);
ObjectMove(取引管理EA:Ticket No Buy Stop i、0、時間[80]、LineBuyStopPrice);
//ObjectMove(取引管理EA:Wingding Buy Stop i、0、TimeCurrent()、LineBuyStopPrice);
double BuyStopDistance =(LineBuyStopPrice-Ask)/(Point);
文字列BuyStopDistanceStr = DoubleToStr(BuyStopDistance、0);
ObjectSetText(取引管理EA:Distance Buy Stop i、BuyStopDistanceStr、13、Arial、PendingColour);
ObjectMove(取引管理EA:Distance Buy Stop i、0、時間[10]、LineBuyStopPrice);
if((LineBuyStopPrice-Ask)lt;(Point2))
{
SendBuyMarketOrder(True);
ObjectDelete(取引管理EA:Line Buy Stop i);
ObjectDelete(取引管理EA:チケットなし購入ストップ
ObjectDelete(取引管理EA:Distance Buy Stop i);
ObjectDelete(取引管理EA:Wingding Buy Stop i);
}
}
それ以外の
{
ObjectDelete(取引管理EA:チケットなし購入ストップ
ObjectDelete(取引管理EA:Distance Buy Stop i);
ObjectDelete(取引管理EA:Wingding Buy Stop i);
}
double LineSellLimitPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Sell Limit i、OBJPROP_PRICE1)、数字);
if(LineSellLimitPrice!= 0)
{
ObjectMove(取引管理EA:Line Sell Limit i、0、TimeCurrent()、LineSellLimitPrice);
ObjectMove(取引管理EA:Line Sell Limit i、1、Time [10]、LineSellLimitPrice);
ObjectMove(取引管理EA:Ticket No Sell Limit i、0、Time [80]、LineSellLimitPrice);
//ObjectMove(取引管理EA:Wingding Sell Limit i、0、TimeCurrent()、LineSellLimitPrice);
double SellLimitDistance =(LineSellLimitPrice-Bid)/(Point);
文字列SellLimitDistanceStr = DoubleToStr(SellLimitDistance、0);
ObjectSetText(取引管理EA:Distance Sell Limit i、SellLimitDistanceStr、13、Arial、PendingColour)
ObjectMove(取引管理EA:Distance Sell Limit i、0、時間[10]、LineSellLimitPrice);
if((LineSellLimitPrice-Bid)lt;(Point2))
{
SendSellMarketOrder(True);
ObjectDelete(取引管理EA:Line Sell Limit i);
ObjectDelete(取引管理EA:Ticket No Sell Limit i)
ObjectDelete(取引管理EA:Distance Sell Limit i);
ObjectDelete(取引管理EA:Wingding Sell Limit i);
}
}
それ以外の
{
ObjectDelete(取引管理EA:Ticket No Sell Limit i)
ObjectDelete(取引管理EA:Distance Sell Limit i);
ObjectDelete(取引管理EA:Wingding Sell Limit i);
}
double LineSellStopPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Sell Stop i、OBJPROP_PRICE1)、数字);
if(LineSellStopPrice!= 0)
{
ObjectMove(取引管理EA:Line Sell Stop i、0、TimeCurrent()、LineSellStopPrice);
ObjectMove(取引管理EA:Line Sell Stop i、1、Time [10]、LineSellStopPrice);
ObjectMove(取引管理EA:チケットなし売りストップ i、0、時間[80]、LineSellStopPrice);
//ObjectMove(取引管理EA:Wingding Sell Stop i、0、TimeCurrent()、LineSellStopPrice);
double SellStopDistance =(Bid-LineSellStopPrice)/(Point);
文字列SellStopDistanceStr = DoubleToStr(SellStopDistance、0);
ObjectSetText(取引管理EA:Distance Sell Stop i、SellStopDistanceStr、13、Arial、PendingColour);
ObjectMove(取引管理EA:Distance Sell Stop i、0、時間[10]、LineSellStopPrice);
if(((Bid-LineSellStopPrice)lt;(Point2))
{
SendSellMarketOrder(True);
ObjectDelete(取引管理EA:Line Sell Stop i);
ObjectDelete(取引管理EA:チケットなし売りストップ i);
ObjectDelete(取引管理EA:Distance Sell Stop i);
ObjectDelete(取引管理EA:Wingding Sell Stop i);
}
}
それ以外の
{
ObjectDelete(取引管理EA:チケットなし売りストップ i);
ObjectDelete(取引管理EA:Distance Sell Stop i);
ObjectDelete(取引管理EA:Wingding Sell Stop i);
}
}
//---------オーダーオブジェクト------------------------------------- --------------------
static int SIObjectOrders;
static int SITradeObjectsFontSize;
static int SITradeWingDingFontSize;
static int SITradeObjectsXDistance;
static int SITradeObjectsYDistance;
static int SITradeObjectsYSpace;
static int SIObjectStopOrders;
bool InputsChanged = False。
if(FirstRun == False)
{
if(SIObjectOrders!= ObjectOrders)
InputsChanged = True;
if(SITradeObjectsFontSize!= TradeObjectsFontSize)
InputsChanged = True;
if(SITradeWingDingFontSize!= TradeWingDingFontSize)
InputsChanged = True;
if(SITradeObjects Distance!= TradeObjects Distance)
InputsChanged = True;
if(SITradeObjects Distance!= TradeObjects Distance)
InputsChanged = True;
if(SITradeObjectsYSpace!= TradeObjectsYSpace)
InputsChanged = True;
if(SIObjectStopOrders!= ObjectStopOrders)
InputsChanged = True;
}
SIObjectOrders = ObjectOrders;
SITradeObjectsFontSize = TradeObjectsFontSize;
SITradeWingDingFontSize = TradeWingDingFontSize;
SITradeObjectsXDistance = TradeObjectsXDistance;
SITradeObjectsYDistance = TradeObjectsYDistance;
SITradeObjectsYSpace = TradeObjectsYSpace;
SIObjectStopOrders = ObjectStopOrders;
if(SendMultipleOrderslt; = 0)
SendMultipleOrders = 1;
if(ObjectOrders == True)
{
if(FirstRun == FalseInputsChanged == False)
{
int BuyMarketX = ObjectGet(取引管理EA:購入市場、OBJPROP_XDISTANCE);
int BuyMarketY = ObjectGet(取引管理EA:買い市場、OBJPROP_YDISTANCE);
int BuyMarketPresent = ObjectFind(取引管理EA:買い市場);
if(
(DeleteOnly == False(BuyMarketX!= TradeObjectsXDistance || BuyMarketY!= TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace))||
(DeleteOnly == TrueBuyMarketPresent!= 0)
)
{
for(int k = 0; klt; SendMultipleOrders; k )
SendBuyMarketOrder(False);
ObjectDelete(取引管理EA:買い市場);
}
int CloseX = ObjectGet(取引管理EA:閉じる、OBJPROP_XDISTANCE);
int CloseY = ObjectGet(取引管理EA:閉じる、OBJPROP_YDISTANCE);
int ClosePresent = ObjectFind(取引管理EA:閉じる);
if(
(DeleteOnly == False(CloseX!= TradeObjectsXDistance || CloseY!= TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3)))||
(DeleteOnly == TrueClosePresent!= 0)
)
{
SendCloseOrder();
ObjectDelete(取引管理EA:閉じる);
}
int SetBEX = ObjectGet(取引管理EA:設定BE、OBJPROP_XDISTANCE);
int SetBEY = ObjectGet(取引管理EA:設定BE、OBJPROP_YDISTANCE);
int SetBEPresent = ObjectFind(取引管理EA:Set BE);
if(
(DeleteOnly == False(SetBEX!= TradeObjectsXDistance || SetBEY!= TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4)))||
(DeleteOnly == TrueSetBEPresent!= 0)
)
{
SetBE();
ObjectDelete(取引管理EA:設定BE);
}
int AutoBEX = ObjectGet(取引管理EA:AutoBE、OBJPROP_XDISTANCE);
int AutoBEY = ObjectGet(取引管理EA:AutoBE、OBJPROP_YDISTANCE);
int AutoBEPresent = ObjectFind(取引管理EA:AutoBE);
if(
(DeleteOnly == False(AutoBEX!= TradeObjectsXDistance || AutoBEY!= TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5)))||
(DeleteOnly == TrueAutoBEPresent!= 0)
)
{
static int LastAutoBETime。
if(TimeLocal() - LastAutoBETimegt; = 2)
{
if(AutoBE == True)
AutoBE = False。
それ以外の
AutoBE = True。
ObjectDelete(取引管理EA:AutoBE);
}
LastAutoBETime = TimeLocal();
}
int TrailX = ObjectGet(取引管理EA:Trail、OBJPROP_XDISTANCE);
int TrailY = ObjectGet(取引管理EA:Trail、OBJPROP_YDISTANCE);
int TrailPresent = ObjectFind(取引管理EA:証跡);
if(
(DeleteOnly == False(TrailX!= TradeObjectsXDistance || TrailY!= TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6)))||
(DeleteOnly == TrueTrailPresent!= 0)
)
{
static int LastTrailTime。
if(TimeLocal() - LastTrailTimegt; = 2)
{
if(TrailActive == True)
{
TrailActive = False。
for(int l = 0; llt; OrdersTotal(); l )
{
OrderSelect(l、SELECT_BY_POS);
if(OrderType()== 0)
{
ObjectMove(取引管理EA:Line TP TicketNo、0、OrderOpenTime()、Bid (Point * DefaultTP));
ObjectMove(取引管理EA:Line TP TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、Bid (Point * DefaultTP));
}
if(OrderType()== 1)
{
ObjectMove(取引管理EA:Line TP TicketNo、0、OrderOpenTime()、Ask-(Point * DefaultTP));
ObjectMove(取引管理EA:Line TP TicketNo、1、Time [iBarShift(Symbol()、Period()、OrderOpenTime()) OrderLineLength]、Ask-(Point * DefaultTP));
}
}
}
それ以外の
TrailActive = Trueです。
ObjectDelete(取引管理EA:証跡);
}
LastTrailTime = TimeLocal();
}
int SellMarketX = ObjectGet(取引管理EA:売り市場、OBJPROP_XDISTANCE);
int SellMarketY = ObjectGet(取引管理EA:売り市場、OBJPROP_YDISTANCE);
int SellMarketPresent = ObjectFind(取引管理EA:売り市場);
if(
(DeleteOnly == False(SellMarketX!= TradeObjectsXDistance || SellMarketY!= TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8)))||
(DeleteOnly == TrueSellMarketPresent!= 0)
)
{
(k = 0; klt; SendMultipleOrders; k )の場合
SendSellMarketOrder(False);
ObjectDelete(取引管理EA:売り市場);
}
int BuyLimitX = ObjectGet(取引管理EA:購入制限、OBJPROP_XDISTANCE)
int BuyLimitY = ObjectGet(取引管理EA:買限度額、OBJPROP_YDISTANCE);
int BuyLimitPresent = ObjectFind(取引管理EA:購入制限);
if(
(DeleteOnly == False(BuyLimitX!= TradeObjectsXDistance || BuyLimitY!= TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2)))||
(DeleteOnly == TrueBuyLimitPresent!= 0)
)
{
SendBuyLimitOrder();
ObjectDelete(取引管理EA:買い制限)
}
int SellLimitX = ObjectGet(取引管理EA:売り制限、OBJPROP_XDISTANCE);
int SellLimitY = ObjectGet(取引管理EA:売り制限、OBJPROP_YDISTANCE);
int SellLimitPresent = ObjectFind(取引管理EA:売買限度);
if(
(DeleteOnly == False(SellLimitX!= TradeObjectsXDistance || SellLimitY!= TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7)))||
(DeleteOnly == TrueSellLimitPresent!= 0)
)
{
SendSellLimitOrder();
ObjectDelete(取引管理EA:売り制限)
}
if(ObjectStopOrders == True)
{
int BuyStopX = ObjectGet(取引管理EA:買いストップ、OBJPROP_XDISTANCE);
int BuyStopY = ObjectGet(取引管理EA:買いストップ、OBJPROP_YDISTANCE);
int BuyStopPresent = ObjectFind(取引管理EA:買いストップ);
if(
(DeleteOnly == False(BuyStopX!= TradeObjectsXDistance || BuyStopY!= TradeObjectsYDistance))||
(DeleteOnly == TrueBuyStopPresent!= 0)
)
{
SendBuyStopOrder();
ObjectDelete(取引管理EA:買いストップ);
}
int SellStopX = ObjectGet(取引管理EA:売りストップ、OBJPROP_XDISTANCE);
int SellStopY = ObjectGet(取引管理EA:売りストップ、OBJPROP_YDISTANCE);
int SellStopPresent = ObjectFind(取引管理EA:売りストップ);
if(
(DeleteOnly == False(SellStopX!= TradeObjectsXDistance || SellStopY!= TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9)))||
(DeleteOnly == TrueSellStopPresent!= 0)
)
{
SendSellStopOrder();
ObjectDelete(取引管理EA:売りストップ);
}
}
}
ObjectCreate(取引管理EA:Buy Market、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:Buy Market、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、BuyMarketColour);
ObjectSet(取引管理EA:Buy Market、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:買い市場、OBJPROP_XDISTANCE、TradeObjectsXDistance)
ObjectSet(取引管理EA:買い市場、OBJPROP_YDISTANCE、TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace);
ObjectCreate(取引管理EA:Buy Market Label、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:Buy Market Label、マーケット、TradeObjectsFontSize、Arial、BuyMarketColour);
ObjectSet(取引管理EA:Buy Market Label、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:Buy Market Label、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace);
ObjectSet(取引管理EA:Buy Market Label、OBJPROP_YDISTANCE、TradeObjectsYDistance TradeObjectsFontSize TradeObjectsYSpace TradeWingDingFontSize-TradeObjectsFontSize)
ObjectCreate(取引管理EA:閉じる、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:閉じる、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、CloseColour);
ObjectSet(取引管理EA:閉じる、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:閉じる、OBJPROP_XDISTANCE、TradeObjectsXDistance);
ObjectSet(取引管理EA:閉じる、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3));
ObjectCreate(取引管理EA:Close Label、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:Close Label、CLOSE、TradeObjectsFontSize、Arial、CloseColour);
ObjectSet(取引管理EA:Close Label、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:クローズラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace);
ObjectSet(取引管理EA:クローズラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 3) (TradeObjectsYSpace * 3) TradeWingDingFontSize-TradeObjectsFontSize)
ObjectCreate(取引管理EA:設定BE、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:Set BE、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、CloseColour);
ObjectSet(取引管理EA:Set BE、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:Set BE、OBJPROP_XDISTANCE、TradeObjectsXDistance)。
ObjectSet(取引管理EA:Set BE、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4));
ObjectCreate(取引管理EA:Set BE Label、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:SET BEラベル、SET BE、TradeObjectsFontSize、Arial、CloseColour);
ObjectSet(取引管理EA:Set BE Label、OBJPROP_CORNER、1)。
ObjectSet(取引管理EA:Set BEラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace)。
ObjectSet(取引管理EA:Set BEラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 4) (TradeObjectsYSpace * 4) TradeWingDingFontSize-TradeObjectsFontSize);
if(AutoBE == True)
int AutoBEWingDing = 252。
それ以外の
AutoBEWingDing = WingdingObjectOrders;
ObjectCreate(取引管理EA:AutoBE、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:AutoBE、CharToStr(AutoBEWingDing)、TradeWingDingFontSize、WingDings、CloseColour);
ObjectSet(取引管理EA:AutoBE、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:AutoBE、OBJPROP_XDISTANCE、TradeObjectsXDistance);
ObjectSet(取引管理EA:AutoBE、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5));
ObjectCreate(取引管理EA:AutoBEラベル、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:AutoBEラベル、AUTO BE、TradeObjectsFontSize、Arial、CloseColour);
ObjectSet(取引管理EA:AutoBEラベル、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:AutoBEラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace);
ObjectSet(取引管理EA:AutoBEラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 5) (TradeObjectsYSpace * 5) TradeWingDingFontSize-TradeObjectsFontSize)
if(TrailActive == True)
int TrailWingDing = 252。
それ以外の
TrailWingDing = WingdingObjectOrders;
ObjectCreate(取引管理EA:Trail、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:Trail、CharToStr(TrailWingDing)、TradeWingDingFontSize、WingDings、CloseColour);
ObjectSet(取引管理EA:Trail、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:Trail、OBJPROP_XDISTANCE、TradeObjectsXDistance);
ObjectSet(取引管理EA:Trail、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6));
ObjectCreate(取引管理EA:Trail Label、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:Trail Label、TRAIL、TradeObjectsFontSize、Arial、CloseColour);
ObjectSet(取引管理EA:Trail Label、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:証跡ラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace);
ObjectSet(取引管理EA:証跡ラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 6) (TradeObjectsYSpace * 6) TradeWingDingFontSize-TradeObjectsFontSize);
ObjectCreate(取引管理EA:売り市場、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:売り市場、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、SellMarketColour);
ObjectSet(取引管理EA:売り市場、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:売り市場、OBJPROP_XDISTANCE、TradeObjectsXDistance);
ObjectSet(取引管理EA:売り市場、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8));
ObjectCreate(取引管理EA:売りラベル、OBJ_LABEL、0、0、0)
ObjectSetText(取引管理EA:売りラベル、マーケット、TradeObjectsFontSize、Arial、SellMarketColour);
ObjectSet(取引管理EA:売りラベル、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:売りラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace)
ObjectSet(取引管理EA:売りラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 8) (TradeObjectsYSpace * 8) TradeWingDingFontSize-TradeObjectsFontSize);
ObjectCreate(取引管理EA:買い制限、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:購入限度額、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、BuyLimitColour);
ObjectSet(取引管理EA:購入限度額、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:購入限度額、OBJPROP_XDISTANCE、TradeObjectsXDistance)
ObjectSet(取引管理EA:購入限度額、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2));
ObjectCreate(取引管理EA:Buy Limit Label、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:買い限界ラベル、LIMIT、TradeObjectsFontSize、Arial、BuyLimitColour);
ObjectSet(取引管理E.
ObjectSet(取引管理EA:買い限界ラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace)
ObjectSet(取引管理EA:買い限界ラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 2) (TradeObjectsYSpace * 2) TradeWingDingFontSize-TradeObjectsFontSize)
ObjectCreate(取引管理EA:売り限度、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:売り制限、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、SellLimitColour)
ObjectSet(取引管理EA:売り制限、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:売り制限、OBJPROP_XDISTANCE、TradeObjectsXDistance)
ObjectSet(取引管理EA:売り限度、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7));
ObjectCreate(取引管理EA:売り制限ラベル、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:売り制限ラベル、LIMIT、TradeObjectsFontSize、Arial、SellLimitColour);
ObjectSet(取引管理EA:売り限度ラベル、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:売り限度ラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace);
ObjectSet(取引管理EA:売り制限ラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 7) (TradeObjectsYSpace * 7) TradeWingDingFontSize-TradeObjectsFontSize)
if(ObjectStopOrders == True)
{
ObjectCreate(取引管理EA:買いストップ、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:買いストップ、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、BuyStopColour);
ObjectSet(取引管理EA:買いストップ、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:買いストップ、OBJPROP_XDISTANCE、TradeObjectsXDistance)
ObjectSet(取引管理EA:買いストップ、OBJPROP_YDISTANCE、TradeObjectsYDistance)
ObjectCreate(取引管理EA:買いストップラベル、OBJ_LABEL、0、0、0);
ObjectSetText(取引管理EA:購入ストップラベル、STOP、TradeObjectsFontSize、Arial、BuyStopColour);
ObjectSet(取引管理EA:買いストップラベル、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:買いストップラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace);
ObjectSet(取引管理EA:買いストップラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance TradeWingDingFontSize-TradeObjectsFontSize);
ObjectCreate(取引管理EA:売りストップ、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:売りストップ、CharToStr(WingdingObjectOrders)、TradeWingDingFontSize、WingDings、SellStopColour);
ObjectSet(取引管理EA:売りストップ、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:売りストップ、OBJPROP_XDISTANCE、TradeObjectsXDistance);
ObjectSet(取引管理EA:売りストップ、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9));
ObjectCreate(取引管理EA:売りストップラベル、OBJ_LABEL、0,0,0);
ObjectSetText(取引管理EA:売りストップラベル、STOP、TradeObjectsFontSize、Arial、SellStopColour);
ObjectSet(取引管理EA:売りストップラベル、OBJPROP_CORNER、1);
ObjectSet(取引管理EA:売りストップラベル、OBJPROP_XDISTANCE、TradeObjectsXDistance TradeObjectsXSpace);
ObjectSet(取引管理EA:売りストップラベル、OBJPROP_YDISTANCE、TradeObjectsYDistance (TradeObjectsFontSize * 9) (TradeObjectsYSpace * 9) TradeWingDingFontSize-TradeObjectsFontSize);
}
それ以外の
{
ObjectDelete(取引管理EA:買いストップ);
ObjectDelete(取引管理EA:Buy Stop Label);
ObjectDelete(取引管理EA:売りストップ);
ObjectDelete(取引管理EA:売りストップラベル);
}
FirstRun = False。
}
それ以外の
{
ObjectDelete(取引管理EA:買い市場);
ObjectDelete(取引管理EA:買い制限)
ObjectDelete(取引管理EA:買いストップ);
ObjectDelete(取引管理EA:閉じる);
ObjectDelete(取引管理EA:設定BE);
ObjectDelete(取引管理EA:AutoBE);
ObjectDelete(取引管理EA:証跡);
ObjectDelete(取引管理EA:売り市場);
ObjectDelete(取引管理EA:売り制限)
ObjectDelete(取引管理EA:売りストップ);
ObjectDelete(取引管理EA:Buy Market Label);
ObjectDelete(取引管理EA:Buy Limit Label);
ObjectDelete(取引管理EA:Buy Stop Label);
ObjectDelete(取引管理EA:Close Label);
ObjectDelete(取引管理EA:Set BE Label);
ObjectDelete(取引管理EA:AutoBEラベル);
ObjectDelete(取引管理EA:Trail Label);
ObjectDelete(取引管理EA:売り市場ラベル);
ObjectDelete(取引管理EA:売り制限ラベル)
ObjectDelete(取引管理EA:売りストップラベル);
}
//---------メインセッション------------------------------------- --------------------
static int NextModifyTime。
if(MaintainSession == TrueTimeLocal()gt; NextModifyTime)
{
i = 0。
while(IsTradeContextBusy()== True)
{
スリープ(100)
i ;
if(igt; 100)
(0)を返します。
}
bool IsOrderPresent = FALSE;
(i = 0; ilt; OrdersTotal(); i )の場合
{
OrderSelect(i、SELECT_BY_POS);
if(OrderMagicNumber()== MyMagicNumber)
IsOrderPresent = TRUE;
}
if(IsOrderPresent == FALSE)
{
if(OrderSend(Symbol()、OP_BUYLIMIT、MarketInfo(Symbol()、MODE_MINLOT)、Point、0,0,0,0、MyMagicNumber、0)lt; 0)
{
文字列ErrorString = ErrorDescription(GetLastError());
コメント(メインセッションの注文が失敗しました。理由:、ErrorString);
印刷(セッションの主な注文の受付に失敗しました。理由:、ErrorString);
(0)を返します。
}
}
(i = 0; ilt; OrdersTotal(); i )の場合
{
OrderSelect(i、SELECT_BY_POS);
if(OrderMagicNumber()== MyMagicNumber)
{
if(OrderTakeProfit()!= 0)
double TPPrice = 0。
if(OrderTakeProfit()== 0)
TPPrice =(Point * 100000);
int ms1 = GetTickCount();
if(OrderModify(OrderTicket()、OrderOpenPrice()、0、TPPrice、0)== False)
{
ErrorString = ErrorDescription(GetLastError());
コメント(メインセッションオーダーの変更に失敗しました。理由:、、ErrorString);
印刷(メインセッション注文の変更に失敗しました。理由:、ErrorString);
}
それ以外の
{
if(RunInfiniteLoop == True)
intデュレーション= 28。
それ以外の
期間= 25。
NextModifyTime = TimeLocal() Duration;
int ms2 = GetTickCount();
int ExeTime = ms2-ms1;
印刷(メインセッション実行時間:、ExeTime);
}
}
}
}
WindowRedraw();
if(RunInfiniteLoop == True)
スリープ(RunIntervalMS)。
それ以外の
ブレーク;
}
(0)を返します。
}
bool RunClose(int TicketNumber、ダブルClickedPrice、ダブルCloseLots、ストリングMyComment)
{
while(IsTradeContextBusy()== True)
{
コメント(RUN CLOSE:未確認となるために取引コンテクストを待っている);
スリープ(10)
int i; i ;
if(igt; 500)
{
コメント(RUN CLOSE:TRADE CONTEXT TIMEOUT);
PlaySound(timeout.wav);
戻り値(False)。
}
}
RefreshRates();
コメント(RUN CLOSE:CLOSING POSITION);
int ms1 = GetTickCount();
ストリングClickedTime = TimeToStr(TimeCurrent()、TIME_SECONDS);
doubleClick Bid = Bid;
double ClickedAsk = Ask;
OrderSelect(TicketNumber、SELECT_BY_TICKET);
if(OrderClose(TicketNumber、CloseLots、OrderClosePrice()、100)== TRUE)
{
int ms2 = GetTickCount();
OrderSelect(TicketNumber、SELECT_BY_TICKET);
string CloseTimeDMY = StringSubstr(TimeToStr(OrderCloseTime()、TIME_DATE)、8,2) - StringSubstr(TimeToStr(OrderCloseTime()、TIME_DATE)、5,2) - StringSubstr(TimeToStr(OrderCloseTime()、TIME_DATE)、 0,4);
ストリングCloseTimeHMS = TimeToStr(OrderCloseTime()、TIME_SECONDS);
double ExeTime = ms2 - ms1。
switch(OrderType())
{
ケース0:文字列Direction = SELL。ダブルスリッページ=(OrderClosePrice() - クリック価格)/(Point * 10);
ケース1:Direction = BUY; Slippage =(ClickedPrice-OrderClosePrice())/(Point * 10);
}
印刷する(SLIPPAGE:、Slippage)
印刷(実行時間:、実行時間);
int Handle = FileOpen(実行ログ/a.csv、FILE_READ | FILE_WRITE);
FileClose(ハンドル)。
FileDelete(実行ログ/a.csv);
文字列FileName =実行ログ/ AccountNumber() EXECUTION LOG.csv;
Handle = FileOpen(FileName、FILE_CSV | FILE_READ | FILE_WRITE、 '、');
if(Handlegt; 0)
{
FileSeek(ハンドル、0、SEEK_END);
FileWrite(ハンドル、AccountNumber()、TicketNumber、CloseTimeDMY、CloseTimeHMS、OrderSymbol()、MyComment、Direction、OrderLots()、ClickedTime、ClickedBid、ClickedAsk、ClickedPrice、OrderClosePrice()、Slippage、ExeTime);
FileClose(ハンドル)。
PlaySound(ok.wav);
コメント();
}
それ以外の
{
PlaySound(timeout.wav);
文字列ErrorString = ErrorDescription(GetLastError());
コメント(RUN CLOSE:FILE OPEN FAILED。理由:、ErrorString);
印刷(ファイルオープンに失敗しました。理由:、ErrorString);
}
}
それ以外の
{
PlaySound(timeout.wav);
ErrorString = ErrorDescription(GetLastError());
コメント(RUN CLOSE:ORDER CLOSE FAILED。理由:、ErrorString);
印刷(注文のクローズに失敗しました。理由:、ErrorString);
戻り値(False)。
}
戻り値(True)。
}
int SendBuyMarketOrder(ブール値HiddenPending)
{
if(SendMultipleOrders == 1)
{
static int LastBuyMarketTime。
if(TimeLocal() - LastBuyMarketTimelt; = 2)
(0)を返します。
LastBuyMarketTime = TimeLocal();
}
if(SendMultipleOrdersgt; 1)
ShowConfirm = True。
Lots = CalculateLots();
if(ShowConfirm == TrueHiddenPending == False)
{
int MessageBoxResult = MessageBox(Buy Symbol() DoubleToStr(Lots、2) マーケットでロット?,, 0x00000004 | 0x00000030);
if(MessageBoxResult!= 6)
(0)を返します。
}
RefreshRates();
int TicketNumber = OrderSend(Symbol()、OP_BUY、Lots、Ask、0,0,0);
if(TicketNumbergt; 0)
PlaySound(ok.wav);
それ以外の
{
PlaySound(timeout.wav);
文字列ErrorString = ErrorDescription(GetLastError());
コメント(購入注文が失敗しました。理由:、ErrorString);
印刷(購入注文が失敗しました。理由:、ErrorString);
}
(0)を返します。
}
int SendBuyLimitOrder()
{
static int LastBuyLimitTime。
if(TimeLocal() - LastBuyLimitTimelt; = 2)
(0)を返します。
LastBuyLimitTime = TimeLocal();
for(int i = 0; ilt; 10; i )
{
if(ObjectFind(取引管理EA:Line Buy Limit i)== - 1)
{
int j = i;
ブレーク;
}
}
if(UseWingDings == False)
{
ObjectCreate(取引管理EA:Line Buy Limit j、OBJ_HLINE、0、TimeCurrent()、Ask-(DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Buy Limit j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Buy Limit j、OBJPROP_STYLE、LineStyleEntry);
double LineBuyLimitPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Buy Limit j、OBJPROP_PRICE1)、数字);
ObjectCreate(取引管理EA:チケット購入制限なし j、OBJ_TEXT、0、時間[80]、LineBuyLimitPrice);
ObjectSetText(取引管理EA:チケット購入制限なし j、購入制限、10、Arial、PendingColour);
}
それ以外の
{
ObjectCreate(取引管理EA:Line Buy Limit j、OBJ_TREND、0、TimeCurrent()、Ask-(DistancePendingOrder * Point)、Time [10]、Ask-(DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Buy Limit j、OBJPROP_WIDTH、OrderLineThickness);
ObjectSet(取引管理EA:Line Buy Limit j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Buy Limit j、OBJPROP_RAY、False);
LineBuyLimitPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Buy Limit j、OBJPROP_PRICE1)、数字);
//ObjectCreate(取引管理EA:Wingding Buy Limit j、OBJ_TEXT、0、TimeCurrent()、LineBuyLimitPrice);
//ObjectSetText(取引管理EA:Wingding Buy Limit j、CharToStr(Wingding)、10、WingDings、PendingColour);
}
double BuyLimitDistance =(Ask-LineBuyLimitPrice)/(Point);
文字列BuyLimitDistanceStr = DoubleToStr(BuyLimitDistance、0);
ObjectCreate(取引管理EA:買値の上限 j、OBJ_TEXT、0、時間[10]、LineBuyLimitPrice)
ObjectSetText(取引管理EA:Distance Buy Limit j、BuyLimitDistanceStr、13、Arial、PendingColour)
(0)を返します。
}
int SendBuyStopOrder()
{
static int LastBuyStopTime。
if(TimeLocal() - LastBuyStopTimelt; = 2)
(0)を返します。
LastBuyStopTime = TimeLocal();
for(int i = 0; ilt; 10; i )
{
if(ObjectFind(取引管理EA:Line Buy Stop i)== - 1)
{
int j = i;
ブレーク;
}
}
if(UseWingDings == False)
{
ObjectCreate(取引管理EA:Line Buy Stop j、OBJ_HLINE、0、TimeCurrent()、Ask (DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Buy Stop j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Buy Stop j、OBJPROP_STYLE、LineStyleEntry);
double LineBuyStopPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Buy Stop j、OBJPROP_PRICE1)、数字);
ObjectCreate(取引管理EA:チケットなし購入ストップ j、OBJ_TEXT、0、時間[80]、LineBuyStopPrice);
ObjectSetText(取引管理EA:チケットなし購入ストップ j、購入ストップ、10、Arial、PendingColour);
}
それ以外の
{
ObjectCreate(取引管理EA:Line Buy Stop j、OBJ_TREND、0、TimeCurrent()、Ask (DistancePendingOrder * Point)、Time [10]、Ask (DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Buy Stop j、OBJPROP_WIDTH、OrderLineThickness);
ObjectSet(取引管理EA:Line Buy Stop j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Buy Stop j、OBJPROP_RAY、False);
LineBuyStopPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Buy Stop j、OBJPROP_PRICE1)、数字);
//ObjectCreate(取引管理EA:Wingding Buy Stop j、OBJ_TEXT、0、TimeCurrent()、LineBuyStopPrice);
//ObjectSetText(取引管理EA:Wingding Buy Stop j、CharToStr(Wingding)、10、WingDings、PendingColour);
}
double BuyStopDistance =(LineBuyStopPrice-Ask)/(Point);
文字列BuyStopDistanceStr = DoubleToStr(BuyStopDistance、0);
ObjectCreate(取引管理EA:距離買いストップ j、OBJ_TEXT、0、時間[10]、LineBuyStopPrice);
ObjectSetText(取引管理EA:Distance Buy Stop j、BuyStopDistanceStr、13、Arial、PendingColour);
(0)を返します。
}
int SendSellMarketOrder(ブール値HiddenPending)
{
if(SendMultipleOrders == 1)
{
static int LastSellMarketTime。
if(TimeLocal() - LastSellMarketTimelt; = 2)
(0)を返します。
LastSellMarketTime = TimeLocal();
}
if(SendMultipleOrdersgt; 1)
ShowConfirm = True。
Lots = CalculateLots();
if(ShowConfirm == TrueHiddenPending == False)
{
int MessageBoxResult = MessageBox(売り シンボル() DoubleToStr(ロット数2) 市場でのロット?,, 0x00000004 | 0x00000030);
if(MessageBoxResult!= 6)
(0)を返します。
}
RefreshRates();
int TicketNumber = OrderSend(Symbol()、OP_SELL、Lots、Bid、0,0,0);
if(TicketNumbergt; 0)
PlaySound(ok.wav);
それ以外の
{
PlaySound(timeout.wav);
文字列ErrorString = ErrorDescription(GetLastError());
コメント(売り注文が失敗しました。理由:、ErrorString);
印刷(売り注文が失敗しました。理由:、ErrorString);
}
(0)を返します。
}
int SendSellLimitOrder()
{
static int LastSellLimitTime。
if(TimeLocal() - LastSellLimitTimelt; = 2)
(0)を返します。
LastSellLimitTime = TimeLocal();
for(int i = 0; ilt; 10; i )
{
if(ObjectFind(取引管理EA:Line Sell Limit i)== - 1)
{
int j = i;
ブレーク;
}
}
if(UseWingDings == False)
{
ObjectCreate(取引管理EA:Line Sell Limit j、OBJ_HLINE、0、TimeCurrent()、Bid (DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Sell Limit j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Sell Limit j、OBJPROP_STYLE、LineStyleEntry);
double LineSellLimitPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Sell Limit j、OBJPROP_PRICE1)、数字);
ObjectCreate(取引管理EA:チケット無売り限度+ j、OBJ_TEXT、0、時間[80]、LineSellLimitPrice)。
ObjectSetText(取引管理EA:チケットなし売り制限+ j、売り制限、10、Aial、PendingColour);
}
それ以外の
{
ObjectCreate(取引管理EA:Line Sell Limit j、OBJ_TREND、0、TimeCurrent()、Bid (DistancePendingOrder * Point)、Time [10]、Bid (DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Sell Limit j、OBJPROP_WIDTH、OrderLineThickness);
ObjectSet(取引管理EA:Line Sell Limit j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Sell Limit j、OBJPROP_RAY、False)。
LineSellLimitPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Sell Limit j、OBJPROP_PRICE1)、数字);
//ObjectCreate(取引管理EA:Wingding Sell Limit j、OBJ_TEXT、0、TimeCurrent()、LineSellLimitPrice);
//ObjectSetText(取引管理EA:Wingding Sell Limit j、CharToStr(Wingding)、10、WingDings、PendingColour);
}
double SellLimitDistance =(LineSellLimitPrice-Bid)/(Point);
文字列SellLimitDistanceStr = DoubleToStr(SellLimitDistance、0);
ObjectCreate(取引管理EA:距離売り限度+ j、OBJ_TEXT、0、時間[10]、LineSellLimitPrice)。
ObjectSetText(取引管理EA:Distance Sell Limit j、SellLimitDistanceStr、13、Arial、PendingColour);
(0)を返します。
}
int SendSellStopOrder()
{
static int LastSellStopTime。
if(TimeLocal() - LastSellStopTimelt; = 2)
(0)を返します。
LastSellStopTime = TimeLocal();
for(int i = 0; ilt; 10; i )
{
if(ObjectFind(取引管理EA:Line Sell Stop i)== - 1)
{
int j = i;
ブレーク;
}
}
if(UseWingDings == False)
{
ObjectCreate(取引管理EA:Line Sell Stop j、OBJ_HLINE、0、TimeCurrent()、Bid-(DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Sell Stop j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Sell Stop j、OBJPROP_STYLE、LineStyleEntry);
double LineSellStopPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Sell Stop j、OBJPROP_PRICE1)、数字);
ObjectCreate(取引管理EA:チケットなし売りストップ j、OBJ_TEXT、0、時間[80]、LineSellStopPrice);
ObjectSetText(取引管理EA:チケットなし売りストップ j、売りストップ、10、Arial、PendingColour);
}
それ以外の
{
ObjectCreate(取引管理EA:Line Sell Stop j、OBJ_TREND、0、TimeCurrent()、Bid-(DistancePendingOrder * Point)、Time [10]、Bid-(DistancePendingOrder * Point));
ObjectSet(取引管理EA:Line Sell Stop j、OBJPROP_WIDTH、OrderLineThickness);
ObjectSet(取引管理EA:Line Sell Stop j、OBJPROP_COLOR、PendingColour);
ObjectSet(取引管理EA:Line Sell Stop j、OBJPROP_RAY、False);
LineSellStopPrice = NormalizeDouble(ObjectGet(取引管理EA:Line Sell Stop j、OBJPROP_PRICE1)、数字);
//ObjectCreate(取引管理EA:Wingding Sell Stop j、OBJ_TEXT、0、TimeCurrent()、LineSellStopPrice);
//ObjectSetText(取引管理EA:Wingding Sell Stop j、CharToStr(Wingding)、10、WingDings、PendingColour);
}
double SellStopDistance =(Bid-LineSellStopPrice)/(Point);
文字列SellStopDistanceStr = DoubleToStr(SellStopDistance、0);
ObjectCreate(取引管理EA:Distance Sell Stop j、OBJ_TEXT、0、時間[10]、LineSellStopPrice);
ObjectSetText(取引管理EA:Distance Sell Stop j、SellStopDistanceStr、13、Arial、PendingColour)
(0)を返します。
}
int SendCloseOrder()
{
static int LastCloseMarketTime。
if(TimeLocal() - LastCloseMarketTimelt; = 2)
(0)を返します。
LastCloseMarketTime = TimeLocal();
if(ShowConfirm == True)
{
int MessageBoxResult = MessageBox(すべて閉じる Symbol() 市場での取引?,, 0x00000004 | 0x00000030);
if(MessageBoxResult!= 6)
(0)を返します。
}
RefreshRates();
(int i = OrdersTotal() - 1; igt; = 0; i--)
{
OrderSelect(i、SELECT_BY_POS);
if(OrderSymbol()== Symbol()OrderType()lt; = 1)
{
if(OrderClose(OrderTicket()、OrderLots()、OrderClosePrice()、100)== True)
PlaySound(ok.wav);
それ以外の
{
PlaySound(timeout.wav);
文字列ErrorString = ErrorDescription(GetLastError());
コメント(CLOSE ORDER FAILED。理由:、ErrorString);
印刷(CLOSE ORDER FAILED。理由:、ErrorString);
}
}
}
(0)を返します。
}
int SetBE()
{
(int i = OrdersTotal() - 1; igt; = 0; i--)
{
OrderSelect(i、SELECT_BY_POS);
if(OrderSymbol()== Symbol()OrderType()lt; = 1)
{
int TicketNo = OrderTicket();
if(OrderProfit()gt; 0)
ObjectMove(取引管理EA:Line SL TicketNo、0、OrderOpenTime()、OrderOpenPrice());
}
}
}
double CalculateLots()
{
RefreshRates();
double LotPoint = MarketInfo(Symbol()、MODE_LOTSTEP);
if(ロット== 0)
ロット=(MathFloor(((AccountEquity()* RiskPercent * 0.01)/(DefaultSL * MarketInfo(Symbol()、MODE_TICKVALUE)) CommissionPerLot))/LotPoint)
return(たくさん);
}
問題を起こし、いくつかの変更が必要な機能は次のとおりです。
1. EAは正しい方法でリスクを計算しません(自分で試してください)。そのため、私は自分のために取引ごとにリスクを計算しなければならず、かなりの時間がかかります(同時に20のチャートを管理します) 。
2. EAが特定の量のピップの後にAuto-BEになると、これが発生したときにアラームが表示されます。
3. EAが特定の量のピップの後にAuto-BEになると、TRAIL機能に戻る可能性があるので、Auto-BEはこの取引には無効です。 AUTO-BEが実行される前に、LOSSは元のStop-LOSSに戻る必要があります。
4.現時点では、1ポジションに対して1つのClose-Profit-lineをPercentで設定することができます(取引の50%としましょう)。
5. EAは希望するオフラインチャートタイムフレーム= 8時間で機能するはずです。
私の何人かのコーダーが適切に機能するために必要な変更を加えることに興味があるように、私は今あなた全員とこのコードを共有したいと思います。
私はここでどんな助けにも感謝します。
添付ファイルはTrade-Manager-EAです。
ご清聴ありがとうございました。
欲張りザック
https://www.forexgroove.com/attachme...1161669919.mq4