Jak zmienić EA, aby korzystać z Partial Lots
Pokaż wyniki od 1 do 4 z 4

Wątek: Jak zmienić EA, aby korzystać z Partial Lots

  1. #1
    Czy jest możliwa modyfikacja tego EA do działania z Partial Lots? Moja platforma handlowa pozwala .1, .2, .3 i tak dalej. Na X Pips jest bliska część zamówienia, ale aby funkcja działała, musisz handlować co najmniej 2 standardowymi lotami.

    Czy to coś, co mogę zmodyfikować?




    // ----------------------------------------------- -------------------
    //| luktom visual order editor.mq4 |
    //| luktom :: Łukasz Tomaszkiewicz |
    //|
    http://luktom.biz/|
    // ----------------------------------------------- -------------------
    #property copyright luktom :: Łukasz Tomaszkiewicz
    #property link
    http://luktom.biz/
    #include lt; stderror.mqhgt;
    #include lt; stdlib.mqhgt;
    extern bool use_timer = true;
    extern int default_sl_level = 10;
    extern int default_tp_level = 500;
    extern color sl_color = Red;
    extern int sl_style = STYLE_DASH;
    zewnętrzny kolor tp_color = Aqua;
    extern int tp_style = STYLE_DASH;
    extern color be_color = Yellow;
    extern int be_style = STYLE_DASH;
    extern int be_offset = 1;
    zewnętrzny kolor cl_color = fioletowy;
    extern int cl_style = STYLE_DASH;
    extern bool use_cp = false;
    zewnętrzny kolor cp_color = niebieski;
    extern int cp_style = STYLE_DASH;
    extern int cp_level = 0;
    extern int cp_closedlevel = 0;
    extern double cp_lots = 0;
    extern color ol_sell_color = Pomarańczowy;
    extern int ol_sell_style = STYLE_DASH;
    zewnętrzny kolor ol_buy_color = Niebieski;
    extern int ol_buy_style = STYLE_DASH;
    extern bool use_be = false;
    extern int default_be_level = 10;
    extern bool use_cl = false;
    extern int default_cl_level = 0;
    extern bool delete_on_deinit = true;
    void init () {

    if (use_timer) {
    regulator czasowy();
    }

    }

    void timer () {
    while (true) {
    Sen (1000);

    if (IsStopped ()) {
    powrót;
    }

    początek();
    }

    }
    void deinit () {

    if (delete_on_deinit) {
    for (int i = 0; ilt; ObjectsTotal (); i ) {
    string name = ObjectName (i);

    if (String Substr (name, 0,4) == love) {
    ObjectDelete (nazwa);
    }
    }
    }

    }
    void start () {
    for (int i = 0; ilt; OrdersTotal (); i ) {
    if (OrderSelect (i, SELECT_BY_POS)) {
    if (OrderSymbol () == Symbol ()) {
    int dgts = MarketInfo (OrderSymbol (), MODE_DIGITS);

    if (ObjectFind (lvoe_ol_ OrderTicket ()) == - 1) {

    if (OrderType () == OP_SELLLIMIT || OrderType () == OP_SELLSTOP) {
    ObjectCreate (lvoe_ol_ OrderTicket (), OBJ_HLINE, 0, Time [0], OrderOpenPrice ());
    ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_COLOR, ol_sell_color);
    ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_STYLE, ol_sell_style);
    }

    if (OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
    ObjectCreate (lvoe_ol_ OrderTicket (), OBJ_HLINE, 0, Time [0], OrderOpenPrice ());
    ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_COLOR, ol_buy_color);
    ObjectSet (lvoe_ol_ OrderTicket (), OBJPROP_STYLE, ol_buy_style);
    }

    } else {

    if (OrderType () == OP_SELL || OrderType () == OP_BUY) {
    ObjectDelete (lvoe_ol_ OrderTicket ());
    }

    align (lvoe_ol_ OrderTicket ());

    if (NormalizeDouble (OrderOpenPrice (), dgts)! = NormalizeDouble (ObjectGet (lvoe_ol_ OrderTicket (), OBJPROP_PRICE1), dgts)) {
    if (! OrderModify (OrderTicket (), ObjectGet (lvoe_ol_ OrderTicket (), OBJPROP_PRICE1), OrderStopLoss (), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
    //Alert (ErrorDescription (GetLastError ()));
    }
    dalej;
    }

    }

    if (OrderStopLoss () gt; 0 || default_sl_levelgt; 0) {
    if (ObjectFind (lvoe_sl_ OrderTicket ()) == - 1) {

    if (OrderStopLoss () == 0) {
    ObjectCreate (lvoe_sl_ OrderTicket (), OBJ_HLINE, 0, Time [0], OrderOpenPrice () - orderDir (OrderType ()) * default_sl_level * Point);
    } else {
    ObjectCreate (lvoe_sl_ OrderTicket (), OBJ_HLINE, 0, Time [0], OrderStopLoss ());
    }
    ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_COLOR, sl_color);
    ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_STYLE, sl_style);
    ObjectSetText (lvoe_sl_ OrderTicket (), # OrderTicket () stop loss, 11);

    } else {
    align (lvoe_sl_ OrderTicket ());
    if (NormalizeDouble (OrderStopLoss (), dgts)! = NormalizeDouble (ObjectGet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1), dgts)) {
    if (! OrderModify (OrderTicket (), OrderOpenPrice (), ObjectGet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
    //Alert (ErrorDescription (GetLastError ()));
    }
    dalej;
    }

    }
    } else {
    if (ObjectFind (lvoe_sl_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_sl_ OrderTicket ());
    }
    }

    if (OrderTakeProfit () gt; 0 || default_tp_level) {
    if (ObjectFind (lvoe_tp_ OrderTicket ()) == - 1) {

    if (OrderTakeProfit () == 0) {
    ObjectCreate (lvoe_tp_ OrderTicket (), OBJ_HLINE, 0, Time [0], OrderOpenPrice () orderDir (OrderType ()) * default_tp_level * Point);
    } else {
    ObjectCreate (lvoe_tp_ OrderTicket (), OBJ_HLINE, 0, Czas [0], OrderTakeProfit ());
    }
    ObjectSet (lvoe_tp_ OrderTicket (), OBJPROP_COLOR, tp_color);
    ObjectSet (lvoe_tp_ OrderTicket (), OBJPROP_STYLE, tp_style);

    } else {
    align (lvoe_tp_ OrderTicket ());
    if (NormalizeDouble (OrderTakeProfit (), 4)! = NormalizeDouble (ObjectGet (lvoe_tp_ OrderTicket (), OBJPROP_PRICE1), 4)) {
    if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss (), ObjectGet (lvoe_tp_ OrderTicket (), OBJPROP_PRICE1), OrderExpiration (), CLR_NONE)) {
    //Alert (ErrorDescription (GetLastError ()));
    }
    dalej;
    }

    }
    } else {
    if (ObjectFind (lvoe_tp_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_tp_ OrderTicket ());
    }
    }

    if (use_cp cp_levelgt; 0) {
    if (ObjectFind (lvoe_cp_ OrderTicket ()) == - 1) {
    if (OrderType () == OP_BUY || OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
    if (OrderStopLoss () lt; OrderOpenPrice ()) {
    ObjectCreate (lvoe_cp_ OrderTicket (), OBJ_HLINE, 0, Time [0], OrderOpenPrice () cp_level * MarketInfo (OrderSymbol (), MODE_POINT));
    ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_COLOR, cp_color);
    ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_STYLE, cp_style);
    }
    } else {
    if (OrderStopLoss () gt; OrderOpenPrice ()) {
    ObjectCreate (lvoe_cp_ OrderTicket (), OBJ_HLINE, 0, Czas [0], OrderOpenPrice () - cp_level * MarketInfo (OrderSymbol (), MODE_POINT));
    ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_COLOR, cp_color);
    ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_STYLE, cp_style);
    }
    }
    } else {
    if (OrderType () == OP_BUY) {
    if (MarketInfo (OrderSymbol (), MODE_BID) gt; ObjectGet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1)) {
    if (OrderClose (OrderTicket (), cp_lots, MarketInfo (OrderSymbol (), MODE_BID), 0)) {
    ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1, MarketInfo (OrderSymbol (), MODE_BID) cp_closedlevel * MarketInfo (OrderSymbol (), MODE_POINT));
    }
    dalej;
    }
    }
    if (OrderType () == OP_SELL) {
    if (MarketInfo (OrderSymbol (), MODE_ASK) lt; ObjectGet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1)) {
    if (OrderClose (OrderTicket (), cp_lots, MarketInfo (OrderSymbol (), MODE_ASK), 0)) {
    ObjectSet (lvoe_cp_ OrderTicket (), OBJPROP_PRICE1, MarketInfo (OrderSymbol (), MODE_ASK) -cp_closedlevel * MarketInfo (OrderSymbol (), MODE_POINT));
    }
    dalej;
    }
    }
    }
    }

    if (use_be) {
    if (ObjectFind (lvoe_be_ OrderTicket ()) == - 1) {
    if (OrderType () == OP_BUY || OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
    if (OrderStopLoss () lt; OrderOpenPrice ()) {
    ObjectCreate (lvoe_be_ OrderTicket (), OBJ_HLINE, 0, Czas [0], OrderOpenPrice () default_be_level * MarketInfo (OrderSymbol (), MODE_POINT));
    ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_COLOR, be_color);
    ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_STYLE, be_style);
    }
    } else {
    if (OrderStopLoss () gt; OrderOpenPrice ()) {
    ObjectCreate (lvoe_be_ OrderTicket (), OBJ_HLINE, 0, Time [0], OrderOpenPrice () - default_be_level * MarketInfo (OrderSymbol (), MODE_POINT));
    ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_COLOR, be_color);
    ObjectSet (lvoe_be_ OrderTicket (), OBJPROP_STYLE, be_style);
    }
    }
    } else {
    if (OrderType () == OP_BUY) {
    if (MarketInfo (OrderSymbol (), MODE_BID) gt; ObjectGet (lvoe_be_ OrderTicket (), OBJPROP_PRICE1)) {
    ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1, OrderOpenPrice () be_offset * MarketInfo (OrderSymbol (), MODE_POINT));
    /*
    if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice (), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
    //Alert (ErrorDescription (GetLastError ()));
    }
    *
    dalej;
    }
    }
    if (OrderType () == OP_SELL) {
    if (MarketInfo (OrderSymbol (), MODE_ASK) lt; ObjectGet (lvoe_be_ OrderTicket (), OBJPROP_PRICE1)) {
    ObjectSet (lvoe_sl_ OrderTicket (), OBJPROP_PRICE1, OrderOpenPrice () - be_offset * MarketInfo (OrderSymbol (), MODE_POINT));
    /*
    if (! OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice (), OrderTakeProfit (), OrderExpiration (), CLR_NONE)) {
    //Alert (ErrorDescription (GetLastError ()));
    }
    *
    dalej;
    }
    }
    }
    }

    if (use_cl) {
    if (ObjectFind (lvoe_cl_ OrderTicket ()) == - 1) {
    if (OrderType ()! = OP_BUY OrderType ()! = OP_SELL) {
    if (OrderType () == OP_BUY || OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
    ObjectCreate (lvoe_cl_ OrderTicket (), OBJ_HLINE, 0, Czas [0], OrderOpenPrice () - default_cl_level * MarketInfo (OrderSymbol (), MODE_POINT));
    ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_COLOR, cl_color);
    ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_STYLE, cl_style);
    } else {
    ObjectCreate (lvoe_cl_ OrderTicket (), OBJ_HLINE, 0, Czas [0], OrderOpenPrice () default_cl_level * MarketInfo (OrderSymbol (), MODE_POINT));
    ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_COLOR, cl_color);
    ObjectSet (lvoe_cl_ OrderTicket (), OBJPROP_STYLE, cl_style);
    }
    }
    } else {
    if (OrderType () == OP_BUYLIMIT || OrderType () == OP_BUYSTOP) {
    if (MarketInfo (OrderSymbol (), MODE_BID) lt; ObjectGet (lvoe_cl_ OrderTicket (), OBJPROP_PRICE1)) {
    OrderDelete (OrderTicket ());
    }
    }
    if (OrderType () == OP_SELLLIMIT || OrderType () == OP_SELLSTOP) {
    if (MarketInfo (OrderSymbol (), MODE_ASK) gt; ObjectGet (lvoe_cl_ OrderTicket (), OBJPROP_PRICE1)) {
    OrderDelete (OrderTicket ());
    }
    }
    if (OrderType () == OP_BUY || OrderType () == OP_SELL) {
    ObjectDelete (lvoe_cl_ OrderTicket ());
    }
    }
    }

    }

    }
    }

    dla (i = 0; ilt; OrdersHistoryTotal (); i ) {
    if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
    if (ObjectFind (lvoe_ol_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_ol_ OrderTicket ());
    }
    if (ObjectFind (lvoe_tp_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_tp_ OrderTicket ());
    }
    if (ObjectFind (lvoe_sl_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_sl_ OrderTicket ());
    }
    if (ObjectFind (lvoe_be_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_be_ OrderTicket ());
    }
    if (ObjectFind (lvoe_cl_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_cl_ OrderTicket ());
    }
    if (ObjectFind (lvoe_cp_ OrderTicket ())! = - 1) {
    ObjectDelete (lvoe_cp_ OrderTicket ());
    }
    }
    }
    }
    void align (nazwa ciągu) {
    ObjectSet (name, OBJPROP_PRICE1, NormalizeDouble (ObjectGet (name, OBJPROP_PRICE1), Digits));
    }
    int orderDir (int oType) {
    if (oType == OP_BUY || oType == OP_BUYLIMIT || oType == OP_BUYSTOP) return (1);
    if (oType == OP_SELL || oType == OP_SELLLIMIT || oType == OP_SELLSTOP) return (-1);
    }

  2. #2
    proszę zakodować kody w tagach kodowych. lub po prostu wyślij swój plik mq4. jest bardzo uciążliwe, aby ktokolwiek przeczytał niepoprawne lub źle wcięte kody.

  3. #3
    Czy istnieje określony fragment kodu, który określa, czy EA będzie mógł działać w ułamkowych pipsach?

  4. #4

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.