Как кодировать? - страница 152

 
m_43_62:
привет

большое спасибо всем друзьям

Вы не можете использовать индикатор как советник, вы должны использовать советник с индикатором, вот так:

P.S. Не забудьте поместить индикатор в каталог индикаторов.

Файлы:
 

удалено

--- удалено ---

 

Код для отображения дней/часов с момента последнего пересечения МА

Мне нужен код, который показывает последний раз, когда две MA пересеклись (т.е. как давно). Он может показывать это в днях или часах.

Любая помощь будет оценена по достоинству!

Тодд

 

Конвертация в рыночное исполнение

У меня есть советник, созданный для версии Metatrader4 "Instant Execution", и мне нужно, чтобы кто-то изменил код, чтобы он работал на версии Metatrader4 "Market Execution". Пожалуйста, напишите мне предложение или любые вопросы на phasna@gmail.com.

Спасибо

Пол

 

Кто-нибудь знает, какой icustom-запрос использовать в советнике для этого индикатора?

У него только один буфер SetIndexBuffer( 0, TrStopLevel ); который используется для трейлинг-точек, стрелки рисуются ObjectSet как это подхватить в icustom statement?

MT4-LevelStop-Reverse-v2-1.mq4

Файлы:
 
increase:
Кто-нибудь знает icustom statement для использования в советнике для этого индикатора?

У него есть только один буфер SetIndexBuffer( 0, TrStopLevel ); который используется для следящих точек, стрелки рисуются ObjectSet как это подхватить в операторе icustom?

MT4-LevelStop-Reverse-v2-1.mq4

Кто-нибудь может помочь?

 

Помогите мне разместить сделки между спредами!

Хорошо, спреды убивают некоторые пары. но есть ли возможность размещать сделки в середине спреда. Таким образом мы можем сэкономить пипсы и заработать больше денег. У меня есть этот код, можно ли изменить его так, чтобы ордер устанавливался на цену графика, а не на цену покупки?

void PlaceBuyOrder()

{

double BuyOrders, Lots;

double LowestBuy = 1000, HighestBuy;

if (BarTime != Time[0])

{

BarTime = Time[0];

TickPrice = 0;

TradeAllowed = true;

}

RefreshRates();

for (Order = OrdersTotal() - 1; Order >= 0; Order--)

{

if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_BUY)

{

if (OrderOpenPrice() < LowestBuy) LowestBuy = OrderOpenPrice();

if (OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice();

BuyOrders++;

}

}

}

if (TradeAllowed)

{

if (Ask >= HighestBuy + (TrendSpacing * Point))

{

// if (Multiplier)

if (Multiplier == 1)

Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, BuyOrders), 2);

else

Lots = NormalizeDouble(LotSize + (LotIncrement * BuyOrders), 2);

}

if (Ask <= LowestBuy - (Spacing * Point))

{

// if (Multiplier)

if (Multiplier == 1)

Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, BuyOrders), 2);

else

Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * BuyOrders), 2);

}

if (Lots == 0)

{

// if (Multiplier)

if (Multiplier == 1)

Lots = NormalizeDouble(LotSize, 2);

else

Lots = NormalizeDouble(LotSize, 2);

}

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, TradeComment, Reference, Green);

Error = GetLastError();

if (Error != 0)

Write("Ошибка при открытии ордера BUY: " + ErrorDescription(Error) + " (C" + Error + ") Ask:" + Ask + " Slippage:" + Slippage);

else

{

TickPrice = Close[0];

TradeAllowed = false;

}

}

}

void PlaceSellOrder()

{

double SellOrders, Lots;

double HighestSell, LowestSell = 1000;

if (BarTime != Time[0])

{

BarTime = Time[0];

TickPrice = 0;

TradeAllowed = true;

}

RefreshRates();

for (Order = OrdersTotal() - 1; Order >= 0; Order--)

{

if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_SELL)

{

if (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice();

if (OrderOpenPrice() < LowestSell) LowestSell = OrderOpenPrice();

SellOrders++;

}

}

}

if (TradeAllowed)

{

if (Bid <= LowestSell - (TrendSpacing * Point))

{

// if (Multiplier)

if (Multiplier == 1)

Lots = NormalizeDouble(LotSize * MathPow(LotIncrement, SellOrders), 2);

else

Lots = NormalizeDouble(LotSize + (LotIncrement * SellOrders), 2);

}

if (Bid >= HighestSell + (Spacing * Point))

{

// if (Multiplier)

if (Multiplier == 1)

Lots = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, SellOrders), 2);

else

Lots = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * SellOrders), 2);

}

if (Lots == 0)

{

// if (Multiplier)

if (Multiplier == 1)

Lots = NormalizeDouble(LotSize, 2);

else

Lots = NormalizeDouble(LotSize, 2);

}

OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, TradeComment, Reference, Red);

Error = GetLastError();

if (Error != 0)

Write("Ошибка при открытии ордера SELL: " + ErrorDescription(Error) + " (D" + Error + ") Bid:" + Bid + " Slippage:" + Slippage);

else

{

TickPrice = Close[0];

TradeAllowed = false;

}

}

}

Можно ли это сделать?

 

HELP~ только 1 ошибка, использую 3 часа, все еще не могу найти ее

я очень волнуюсь, потому что не могу найти, как исправить ошибку ниже

может ли кто-нибудь сказать мне, где ошибка? или помочь мне отладить, я прикрепил файлы, см. buttom~ ~

'\end_of_program' - несбалансированная левая скобка C:\Program Files\ MetaTrader\experts\scripts\delete_pending_SAM.mq4 (38, 2)

ЭТО ФАЙЛ СКРИПТА~ ~

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

//| delete_pending.mq4 |

//| Copyright ?2004, MetaQuotes Software Corp. |

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

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| скрипт "удалить отложенный ордер" |

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

int start()

{

for (int number=0; (number <= OrdersTotal()+1); number++ )

{for (int times=0; (times <= OrdersTotal()+1); times++ )

{if (OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )

{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;

if ((OverSymbolDel ==0)&& (Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

else Print("Ошибка при выборе заказа ", GetLastError() ) ;

}

}

}

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

void delPending()

{ OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (result==False) Print("Ошибка при удалении заказа ", GetLastError() );

}

Файлы:
 

За чивинг

Попробуйте это:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| script "delete pending order" |

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

int start()

{

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

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

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

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}
 
Roger09:
На чивинг

Попробуйте это:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property show_inputs

bool result;

extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE

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

//| script "delete pending order" |

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

int start()

{

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

{

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;

if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();

if (OverSymbolDel ==1) delPending();

}

}

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

void delPending()

{

OrderPrint();

int ticket =OrderTicket();

result=OrderDelete(ticket);

if (!result) Print("Error when delete Order ", GetLastError() );

}

спасибо за помощь~ ~

и я нашел свою ошибку :

{if (OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )

измените на

OrderSelect(number,SELECT_BY_POS,MODE_TRADES);

{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;

изменить на

if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) countinue;