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

 

Помощь в модификации OrderHistory 2.0

Хотел бы узнать, может ли кто-нибудь модифицировать этот файл MQ4 для меня. Я хочу, чтобы описание, которое появляется при наведении курсора на стрелки и линии тренда, выглядело примерно так..:

ПРОДАЖА

(имя порядка удалено)

Время открытия: 2009.05.25 10.00

Время закрытия: 2009.05.25 11.00

Цена открытия: 94.98

Цена закрытия: 94.992

Пипсы: 25.0 |

SL: 50.0 | -> (сделать 5 цифр)

TP: 25.0 |

Макс. фл. L: 16.9 ("Максимальный плавающий убыток/прибыль" - круто, если бы это можно было интегрировать)

Лоты: 0.38

Брутто: 100.28

...вместо этого:

Продать: 12345678 2009.05.25 10.00 @ 94.98

Пипсы: 250 SL: -750 TP: 250 Lots: 0.38 Брутто: $ 100.28

94.992

Я пытался изменить это сам, но безуспешно. Я не программист (конечно), но было бы здорово, если бы кто-нибудь, кто им является, смог это исправить. Буду признателен.

Файлы:
 

NFA против хеджирования, пожалуйста, помогите

Здравствуйте, у меня проблема с новым правилом NFA. Мой советник больше не может создавать отложенные ордера . Это простой советник: открываем 1 ордер, удаляем 1 неиспользованный отложенный ордер и создаем 2 новых отложенных ордера, buy limit и sell limit.

Вот код:

if (TotalMikuOrders()==2 && TotalMikuOrders_Mode(OP_BUY)+TotalMikuOrders_Mode(OP_SELL)==1){

for (int j=0;j<OrdersTotal();j++){

OrderSelect(j,SELECT_BY_POS);

if (OrderType()==OP_BUY){

if (OrderMagicNumber()==Magic_Miku_B){

deleteMikuPending();

sendMikuPending(OrderOpenPrice(),Magic_Miku_S,Magic_Miku_B+1,XFactor*CoA,XFactor*CoB,com+"XA",com+"XB",sl1,sl2,r1,r1,sp,sp0,tp1,tp2);

return(0);

}

}

if (OrderType()==OP_SELL){

if (OrderMagicNumber()==Magic_Miku_S){

deleteMikuPending();

sendMikuPending(OrderOpenPrice(),Magic_Miku_S+1,Magic_Miku_B,XFactor*CoB,XFactor*CoA,com+"XB",com+"XA",sl2,sl1,r1,r1,sp0,sp,tp2,tp1);

return(0);

}

}

}

}

}

return(0);

}

void sendMikuPending(double price, int ms,int mb,double lot,double lotb,string coms,string comb,double sls,double slb,double rs,double rb,double sps,double spb,double tps,double tpb){

double SL=0, TP=0;

int i;

if (StopLoss>0) {SL=NormalizeDouble(NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits)-StopLoss*slb*Point,Digits);}else{SL=0;}

if (TakeProfit>0) {TP=NormalizeDouble(NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits)+TakeProfit*tpb*Point,Digits);}else{TP=0;}

if (OrderSend(Symbol(),OP_BUYLIMIT,lotb,NormalizeDouble(OrderOpenPrice()-Range*rb*Point+spb*Point,Digits),Slippage,SL,TP,comb,mb,0,Blue)==-1) {

i=GetLastError();

if (i!=1 && i!=0) Print("Buy stop Error : "+error(i)+" at "+Symbol()+" "+Period());

}

if (StopLoss>0) {SL=NormalizeDouble(NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits)+StopLoss*sls*Point,Digits);}else{SL=0;}

if (TakeProfit>0) {TP=NormalizeDouble(NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits)-TakeProfit*tps*Point,Digits);}else{TP=0;}

if (OrderSend(Symbol(),OP_SELLLIMIT,lots,NormalizeDouble(OrderOpenPrice()+Range*rs*Point-sps*Point,Digits),Slippage,SL,TP,coms,ms,0,Red)==-1) {

i=GetLastError();

if (i!=1 && i!=0) Print("Sell stop Error : "+error(i)+" at "+Symbol()+" "+Period());

}

}

полный код находится во вложении. Я думаю , может советник должен прочитать последний закрытый ордер и сделать непосредственно 1 открытый ордер. Но у меня нет подсказки.

Пожалуйста, помогите кому-нибудь . Большое спасибо.

Файлы:
miku_test.mq4  15 kb
 

Проблема кодирования

У меня есть часть кода, которая, похоже, вызывает ошибку OrderSend #130. Я проверил настройки Stop Loss и Take Profit, и они должны быть далеко от минимального расстояния, требуемого при размещении одного из ордеров. Я даже нормализовал числа, чтобы убедиться, что они соответствуют параметрам сайта. Поэтому я предполагаю, что должна быть проблема с ценой Ask или ценой Bid, которые он получает, и поэтому сервер не принимает их.

Это код из раздела, где он размещает ордер на покупку:

RefreshRates();

ticket = OrderSend(Symbol(),openType,lots,Ask,Slippage,SL,TP,comment,ExpertMagicNumber,0,Color);

Есть ли что-то особенное, что я должен сделать с Ask, чтобы убедиться, что он соответствует тому, что ищет сайт, когда получает ордер? Я просто предположил, что он будет получать цены точно так, как их выдает сайт.

 

Здравствуйте, есть ХОРОШАЯ система, которая работает, размещено JoeSmoe

Было бы полезно, если бы кто-нибудь знал, как создать простейший советник, который бы открывал позицию только при прорыве - это было бы очень полезно. Я пытался, но не знаю как.

лучше всего,

j

Файлы:
 

Как условно включить файл как часть советника?

Здравствуйте,

Я написал это в другом разделе форума, но потом обнаружил этот раздел. Пожалуйста, извините за двойной постинг...

Можно ли условно включить файл в советник? Хотя синтаксис может быть неправильным, концепция такова...

switch(MASTER_PERIOD)

{

case 30:

#include ;

break;

case 240:

#include ;

break;

}

...при этом MASTER_PERIOD является переменной Extern.

Я ценю и с нетерпением жду ваших комментариев, предложений и примеров того, как этого добиться!

С уважением,

DMMcCollum

 

Как прочитать/получить цену в определенное время?

Мы с другом работаем над советником. На определенном этапе ему (советнику) нужно считать и получить цену в определенное время, скажем, 17:00 EST... и т.д.

Может ли кто-нибудь из старшего поколения подсказать, как это сделать, вместо того, чтобы считать ценовые бары в обратном направлении? Может быть, уже есть функция, написанная для этого? Пожалуйста, помогите. Спасибо всем и да благословит вас Бог!

B rgds/abundance

 
 

Редактировать

Steven_1974:
Хорошо, у меня есть часть кода, которая, кажется, вызывает ошибку OrderSend #130. Я проверил настройки Stop Loss и Take Profit, и они должны быть далеко от минимального расстояния, требуемого при размещении одного из ордеров. Я даже нормализовал числа, чтобы убедиться, что они соответствуют параметрам сайта. Поэтому я предполагаю, что должна быть проблема с ценой Ask или ценой Bid, которые он получает, и поэтому сервер не принимает их.

Это код из раздела, где он размещает ордер на покупку:

RefreshRates();

ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,Bid - SL*Point,Ask + TP*Point,comment,ExpertMagicNumber,0,Color);

ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,Ask + SL*Point,Bid - TP*Point,comment,ExpertMagicNumber,0,Color);

Есть ли что-то особенное, что я должен сделать с Ask, чтобы убедиться, что он соответствует тому, что ищет сайт, когда получает заказ? Я просто предположил, что он будет получать цены точно так, как их выдает сайт.

редактировать как указано выше

OTR

 

Системный эксперт JoseMoe

janekpietrzyk:
Было бы полезно, если бы кто-нибудь знал, как создать простейший советник, который бы открывал позицию только при прорыве - это было бы очень полезно. Я пытался, но не знаю как.

лучший,

j

найдите советника RonaldRaygun в этой теме. (100 300 пипсов ежедневно...)

OTR

 

Ошибка несопоставленных данных

Привет кодеры

Я все еще изучаю свои первые шаги в MQL-коде.

В чем причина, когда я имею следующее сообщение в журнале:

Testgenerator:

unmatched data error (volume limit 159 at 2009.05.06 19 15 exceeded).

куда мне смотреть в коде?

Спасибо

Причина обращения: