MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,0,MODE_LWMA,PRICE_WEIGHTED,-1);[/PHP] Use this instead:[PHP]MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,0,MODE_LWMA,PRICE_WEIGHTED,1);
iCustom indicatorのMoving Average of 7, Smoothを参照するには、EAでどのようにコーディングすればよいのでしょうか? これは、最初のインジケータのデータを使用して移動平均を使用することと同じです。 iCustomインジケータを表示し、インジケータのMAを持つ(Using first indicators data)ことはできますが、eaではどのようにコーディングするのでしょうか?
この文章について、どうか助けてください
よろしくお願いします。
デイブ
誰かこの件で助けてくれませんか?お願いします!!!!
私はそれを得たと思います!:
LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0); //LOWER GAMMA
if(Bars<100) {Print("bars less than 100"); return(0);}.
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("This EA is not working with this TimeFrame!"); return(0);}。
}
if(LimitPairs)
{
if(AllowedPair(Symbol()) == false) {Print("This EA is not working with this Currency!"); return(0);} {Print("This EA is not working with this Currency!
EAに関する質問
こんにちは、Codersguru。
私はプログラミングを学ぼうとしていて、あなたの教材を使っています。
質問ですが、EAの例としてema cross overを使っているので、emaの代わりにstepMA_7.2のインジケータを使おうと思っています。stepMA_7.2で大丈夫でしょうか?それとも、コードを整理する必要がありますか?
私は、コード内のインジケータの交換だけで表面化するはずだと考えていました。
よろしくお願いします。
ありがとうございます。
これは間違っている:前のバーが正にカウントされている
ありがとうございました。
まだいくつか問題があります。買い注文は正しく開かれますが、すべてストップロスで閉じられ、終了条件は無視されます。
//| EA Stripped Down.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern double StopLoss =13.0;
extern double MA_Open =12.0;
extern double MA_Close =12.0;
extern double MA_Exit =6.0;
extern double Lots =50.0;
#define MAGICMA 20050610
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
double MA_CLOSE;
double MA_OPEN;
double MA_EXIT_0;
double MA_EXIT_1;
int res;
if(Volume[0]>1) return;
MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0);
MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0);
MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
if(Volume[0]>1) return;
MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if(OrderType()==OP_BUY)
{
if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
return;
}
//+------------------------------------------------------------------+
}別指標の移動 平均
図解でわかる
範囲内のオープンポジションをチェック する
x pips以内のオープンポジションをチェックしようとしているのですが、もしポジションがなければオープンします。うまくいかず、ただ連続してポジションを開くだけです。誰か助けてくれませんか?
if(buyingPosition)
{
weBeBuying = true;
totalorders = OrdersTotal();
for(i=0;i<totalorders;i++)
{
OrderSelect(i,SELECT_BY_POS);
if((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber))
{
type = OrderType();
if((type == OP_BUY) || (type == OP_BUYLIMIT))
{
if(((Bid+spread) - OrderOpenPrice()) > -0.0013)
weBeBuying = false;
}
}
}
}
if(weBeBuying==true)
OrderSend(Symbol(),OP_BUY,lots,Bid+spread,slippage,0,0,NULL,magicNumber,0,Green).を実行します。
iCustom インジケータのMA
iCustom indicatorのMoving Average of 7, Smoothを参照するには、EAでどのようにコーディングすればよいのでしょうか? これは、最初のインジケータのデータを使用して移動平均を使用することと同じです。 iCustomインジケータを表示し、インジケータのMAを持つ(Using first indicators data)ことはできますが、eaではどのようにコーディングするのでしょうか?
この文章について、どうか助けてください
よろしくお願いします。
デイブ
誰かこの件で助けてくれませんか?お願いします!!!!
私はそれを得たと思います!:
LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0); //LOWER GAMMA
まだこれには助けが必要です - あなたは私を助けることができますか!?
MQL4に関する質問を投稿していただければ、できる限りお答えします。
エラーコードについて
私はちょうど私のすべての私の専門家に、私はエラーコード "OrderModify error 1 "を持っていることを私にアカウントを返しました、でもそのようなコーダーの達人のような専門家、以下。
なぜですか?
ありがとうございます。
//+------------------------------------------------------------------+
//|PriceCross.mq4|||PriceCross.mq4
//| コーダーズグル
//|https://www.mql5.com/en/forum|
//+------------------------------------------------------------------+
#property copyright "Coders Guru" (コーダーズ・グル)
#property link "https://www.forex-tsd.com"
//---- インクルード
#include
//---- 取引の制限
extern double TakeProfit = 200;
extern double TrailingStop = 50;
extern double StopLoss = 50;
extern double Lots = 0.1;
extern int Slippage = 5;
//--- 外部オプション
extern int CurrentBar = 1;
extern int HedgeLevel = 6;
extern double Expiration = 7200;
extern int Size = 4;
extern int Step = 1;
extern bool UseClose = true;
//--- インジケーターの設定
extern int MaMode = 3;
extern int MaPeriod = 24;
//--- グローバル変数
int MagicNumber = 101090;
string ExpertComment = "PriceCross";
bool LimitPairs = true;
bool LimitFrame = true;
int TimeFrame = 60;
string LP[] = {"EURUSD", "USDCHF", "GBPUSD", "USDJPY"}; // リミットしたいパリスを追加/削除します。
bool Optimize = true;
int NumberOfTries = 5;
//+------------------------------------------------------------------
int init()
{
return(0);
int deinit()
{
return(0);
}
//+------------------------------------------------------------------
bool isNewSymbol(string current_symbol)
{
//オープンしたすべての注文をループしてシンボルを比較する
int total = OrdersTotal();
for(int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
string selected_symbol = OrderSymbol();
if (current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber)
return (False);
}
return (True);
}
//+------------------------------------------------------------------+
int start()
{
int cnt, ticket, total,n;
double trend ;
if(Bars<100) {Print("bars less than 100"); return(0);}.
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("This EA is not working with this TimeFrame!"); return(0);}。
}
if(LimitPairs)
{
if(AllowedPair(Symbol()) == false) {Print("This EA is not working with this Currency!"); return(0);} {Print("This EA is not working with this Currency!
}
trend = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar);
//--- 取引条件
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
if (Open[1]トレンド)
BuyCondition = true とする。
if (Open[1]>trend && Close[1]<trend)
SellCondition = true;
if (Open[1]>トレンド && Close[1]<トレンド)
CloseBuyCondition = true。
if (Open[1]トレンド)
CloseSellCondition = true。
total = OrdersTotal();
if(total < 1 || isNewSymbol(Symbol()))
{
if(BuyCondition) //<-- 買いの条件
{
ticket = OpenOrder(OP_BUY); //<-- BUY注文を出す
CheckError(ticket, "BUY");
for(n=0 ; n< サイズ ; n++)
{
ticket = OpenPendingOrder(OP_BUYSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration).のような注文を出すことができます。
}
return(0);
if(SellCondition) //<-- 売りの条件
{
ticket = OpenOrder(OP_SELL); //<-- SELL注文を出す
CheckError(ticket, "SELL")。
for(n=0 ; n < サイズ ; n++)
{
ticket = OpenPendingOrder(OP_SELLSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration).この注文を出すには、OP_SELLSTOP,Lots,StopLoss,TakeProfit,ExpertComment,マジックナンバーを指定します。
}
return(0);
}
return(0)。
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()))
{
if(OrderType()==OP_BUY) //<-- ロングポジションを保有中
{
if(UseClose)
{
if(CloseBuyCondition) //<-- 注文をクローズして退場!
{
CloseOrder(OrderType());return(0);
}
TrailOrder(OrderType()); return(0); //<-- 注文をトレールする。
}
if(OrderType()==OP_SELL) //<-- ショートポジションへ移動
{
if(UseClose)
{
if(CloseSellCondition) //<-- 注文をクローズして退場!
{
CloseOrder(OP_SELL); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- 注文をトレールする。
}
}
}
return(0);
}
//+------------------------------------------------------------------+
....
こんにちは。
注文がすでに終了していることを知る方法はありますか?
図解するとこんな感じです。
2つの注文を保留にしています。
open #182 buy limit 0.17 EURUSD at 1.3005 sl: 1.2970 tp: 1.3013
open #183 buy limit 0.17 EURUSD at 1.3000 sl: 1.2968 tp: 1.3011
では
オーダー #182, buy 0.17 EURUSD is opened at 1.3005
1.3013 (1.3013 / 1.3015) で利益確定。
注文番号182がクローズされた後、注文番号183を削除したいのですが。トリガーは、もし注文#182が閉じられたら、注文#183が削除されるということです。
乾杯